通常我们不在 头文件中定义全局变量 因为连接的时候生成OBJ文件时会出现会重复定义那我们在头文件中定义 类呢 结构体呢?就像通常我们做的
好几个源文件包含类的头文件,那为什么这个时候在连接的时候 编译器不会报警说 OBJ文件中看到好几次类的定义了,还是这个类定义实际上只是一个声明呢?我搞不清楚啊 大家帮我解答以下啊
好几个源文件包含类的头文件,那为什么这个时候在连接的时候 编译器不会报警说 OBJ文件中看到好几次类的定义了,还是这个类定义实际上只是一个声明呢?我搞不清楚啊 大家帮我解答以下啊
解决方案 »
- 学习MFC需要学那些知识
- shockwave.Callfunction总是出错抛出异常
- 串口问题,有一段程序,如何在写完数据之后,硬件请求电脑,是否可以开始读数据?望高手指教
- [winpcap]抓来了IP包,然后分析得到的地址,怎么是随机值啊。帮我看看
- 咨询有经验的大侠:多线程情况下,文件io操作是否要加锁?
- VC++ 6 的跟踪问题
- 100分啊! 谁能拿下这个问题,5000分相送!
- 求助: 怎样用代理上教育网的ftp?
- ASSERT(pWndParent->GetDlgItem(IDTHIS) == NULL);是什么意思?
- MFC对于OnDraw()函数调用顺序的问题
- VC如何获取本机MAC地址
- 控件为什么不随窗口大小改变
#endif之类的语句!
不是这么简单的 这个只是解决 同一源文件多次引用头文件的问题 我说的是生成OBJ文件时的链接问题!!!!
#ifdef xxxxx
#endif
#ifndef xxxxx
.....
#endif
#ifndef XXXX
#define XXXX#endif把这些去掉,重复引用也会出现问题的
不好意思 你没理解我的意思 这个东西我知道的
我的程序已经写了宏定义
我指的是链接生成EXE文件的时候如果你在头文件中定义了全局变量 加上宏保护
链接照样出错 因为 多个OBJ文件产生了额重复定义
有点写错了 不是生成OBJ的时候 是OBJ链接生成EXE的时候算了 你们都以为我乱谈
-----------------------------
#ifndef MACRO_H
#define MACRO_Hint a;#endif // MACRO_H
-----------------------------b.cpp
-----------------------------
#include "a.h"
-----------------------------c.cpp
-----------------------------
#include "a.h"
-----------------------------我这样编译没错