关于宏定义的问题 我在一个被多次引用的头文件重定义了如下全局变量#ifndef MYHEADE_H#define MYHEADE_Hint x ;#endif为什么连接器还是告诉我 x重复定义了哪?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是防止这样的情况//1.h#ifndef MYHEADE_H#define MYHEADE_Hint x ;#endif//2.h#include "1.h"//3.h#include "1.h"#include "2.h"防之重复包含。但是对这样的情况无用//2.c#include "1.h"//3.c#include "1.h"这样的话编译器并没有捕捉到重复包含,但是链接器捕捉到了多个文件中的同名对象。所以是链接器报错而不是编译器报错。你需要把int x写到一个专门的.c或者.cpp文件中就可以解决这个问题了 把x写到MYHEADE_H里extern int x; Windows 服务调用 如何使窗口总是为活动(TOP) 请帮我看看为什么加解锁失败? 老师布置了这样的作业,我看不太懂。。。 帮我看看这个打印a[128]的植为什么是-128? 请教如何使用ODBC操作EXCEL文件,删除其中的某条记录? 求助。怎么在VC里面实现DNF连发的功能。 CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 如何杀掉另外一个进程 求助!求助!!鼠标点击已经打开的excel文件或者TXT文件,MFC程序如何可以获取此文件的路径???? 祝贺伯虎家添新丁 看《windows核心编程》关于内存管理部分的疑问?
#ifndef MYHEADE_H
#define MYHEADE_H
int x ;
#endif//2.h
#include "1.h"//3.h
#include "1.h"
#include "2.h"防之重复包含。但是对这样的情况无用//2.c
#include "1.h"//3.c
#include "1.h"这样的话编译器并没有捕捉到重复包含,但是链接器捕捉到了多个文件中的同名对象。所以是链接器报错而不是编译器报错。你需要把int x写到一个专门的.c或者.cpp文件中就可以解决这个问题了
extern int x;