变量重定义

Posted jasonzhi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变量重定义相关的知识,希望对你有一定的参考价值。

出现变量重定义的情况?

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

main.c

1 #include <stdio.h>
2 #include "a.c"
3 
4 int a = 100;
5 
6 int main() {
7 
8     return 0;
9 }

a.c

 1 int a = 200; 

编译命令:

gcc main.c -o main

编译报错:

 技术分享图片

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

main.c

1 #include <stdio.h>
2 
3 int a = 100;
4 
5 int main() {
6 
7     return 0;
8 }

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

最后一步链接会报错:

 技术分享图片

以上是关于变量重定义的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript回炉重造

解决头文件中定义全局变量MSVCGNU编译器出现重定义问题

为什么变量没有未定义?

中继片段变量

在c语言中,用typedef重命名后,原来的变量名还可以用吗

在多文件中C语言中全局变量的重定义