变量重定义

出现变量重定义的情况?

=================================版权声明=================================

发源文件以及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

编译报错:

 图片 1

版权声明:原创文章 禁止转载 

链接的鲜单文本还定义了同一个变量

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

末一步链接会报错:

 图片 2

央通过右侧公告被的“联系邮箱(wlsandwho@foxmail.com)”联系自己

无用于学术性引用。

勿用于生意出版、商业印刷、商业引用和其他商业用途。                   

 

正文不定期修正完善。

本文链接:http://www.cnblogs.com/wlsandwho/p/6675257.html

耻辱墙:http://www.cnblogs.com/wlsandwho/p/4206472.html

=======================================================================

诚如的话对于当一个图域里的变量重定义警告,不会见生出什么问题。我哉是Level4编译力求消灭所有警告的。

而今调放假前的代码时,发现了只崩溃问题,下面的伪代码中,pTool是出于一个DLL创建出来的。

1 std::wstring strText=L"aaa";
2 
3 ...
4 
5 if(strText!=L"")
6 {
7     std::wstring strText=L"aaa";
8     strText=pTool->Do(strText);
9 }

无异于开始没有仔细看,重新编译了一下,发现来问题,而且无法跟进代码调试。

端详才发觉是重定义了。

遂改了单叫做,好了。

 

从而什么,告诉你们用Level4编译程序是发生道理的。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

另外,匆匆赶进度的代码,从来不曾什么质地可言。

所谓工期,就是让你顿时点时间涉及这个,而无是公提到这个需要有些日子。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图