c语言中头文件包含时变量重定义

c语言中头文件包含时变量重定义

ID:8967752

大小:16.05 KB

页数:4页

时间:2018-04-13

c语言中头文件包含时变量重定义_第1页
c语言中头文件包含时变量重定义_第2页
c语言中头文件包含时变量重定义_第3页
c语言中头文件包含时变量重定义_第4页
资源描述:

《c语言中头文件包含时变量重定义》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、防止变量重复定义;头文件重复包含、嵌套包含test-1.0使用#ifndef只是防止了头文件被重复包含(其实本例中只有一个头件,不会存在重复包含的问题),但是无法防止变量被重复定义。#vitest.c-------------------------------#include#include"test.h"externi;externvoidtest1();externvoidtest2();intmain(){  test1();  printf("ok");  test2(); 

2、 printf("%d",i);  return0;}#vitest.h-------------------------------#ifndef_TEST_H_#define_TEST_H_charadd1[]="www.shellbox.cn";charadd2[]="www.scriptbox.cn";inti=10;voidtest1();voidtest2();#endif#vitest1.c-------------------------------#include

3、h>#include"test.h"externcharadd1[];voidtest1(){  printf(add1);}#vitest2.c-------------------------------#include#include"test.h"externcharadd2[];externi;voidtest2(){  printf(add2);  for(;i>0;i--)      printf("%d-",i);}#Makefile--------------------

4、-----------test:   test.otest1.otest2.otest1.o:test1.ctest2.o:test2.cclean:  rmtesttest.otest1.otest2.o错误:test-1.0编译后会出现"multipledefinitionof"错误。错误分析:由于工程中的每个.c文件都是独立的解释的,即使头文件有#ifndef_TEST_H_#define_TEST_H_....#enfif在其他文件中只要包含了global.h就会独立的解释,然后每个.c文件生成独立

5、的标示符。在编译器链接时,就会将工程中所有的符号整合在一起,由于文件中有重名变量,于是就出现了重复定义的错误。解决方法在.c文件中声明变量,然后建一个头文件(.h文件)在所有的变量声明前加上extern,注意这里不要对变量进行的初始化。然后在其他需要使用全局变量的.c文件中包含.h文件。编译器会为.c生成目标文件,然后链接时,如果该.c文件使用了全局变量,链接器就会链接到此.c文件 。test-2.0#vitest.c-------------------------------#include

6、.h>#include"test.h"inti=10;charadd1[]="www.shellbox.cn";charadd2[]="www.scriptbox.cn";externvoidtest1();externvoidtest2();intmain(){  test1();  printf("ok");  test2();  printf("%d",i);  return0;}#vitest.h-------------------------------#ifndef_TEST_

7、H_#define_TEST_H_externi;externcharadd1[];externcharadd2[];voidtest1();voidtest2();#endif#vitest1.c-------------------------------#include#include"test.h"voidtest1(){  printf(add1);}#vitest2.c-------------------------------#include#includ

8、e"test.h"voidtest2(){  printf(add2);  for(;i>0;i--)      printf("%d-",i);}引用自:http://hi.baidu.com/zengzhaonong/item/2317e7207b04cb8f6f2cc379

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。