变量重定义

532 阅读1分钟

出现变量重定义的情况?

源文件与include的文件定义了同一个变量

main.c

#include <stdio.h>
#include "a.c"

int a = 100;

int main() {

return 0;
}

a.c

int a = 200;

编译命令:

gcc main.c -o main

编译报错:

链接的两个文件都定义了同一个变量

main.c

#include <stdio.h>



int a = 100;



int main() {



    return 0;

}

a.c

int a = 200;

编译命令:

gcc -c main.c -o main.o

gcc -c a.c -o a.o

gcc main.o a.o -o main

最后一步链接会报错:

出现变量重定义的情况?

源文件与include的文件定义了同一个变量

main.c

#include <stdio.h>
#include "a.c"

int a = 100;

int main() {

return 0;
}

a.c

int a = 200;

编译命令:

gcc main.c -o main

编译报错:

链接的两个文件都定义了同一个变量

main.c

#include <stdio.h>



int a = 100;



int main() {



    return 0;

}

a.c

int a = 200;

编译命令:

gcc -c main.c -o main.o

gcc -c a.c -o a.o

gcc main.o a.o -o main

最后一步链接会报错: