关于extern的问题
请问各位高手,以下情况是否导致错误:
在a.h中有这样一条语句:
extern int debug;
在b.c中引用a.h:
#include "a.h "
但在b.c中没有关于debug 的定义。
这样可以吗?会不会导致错误?为什么?
谢谢!!!!
[解决办法]
会引起LNK2001错误
[解决办法]
在.c文件中做判断,需要用的就定义,不需要的就不定义,怕重复定义就用宏设置
[解决办法]
#define _DEBUG_
然后再在cpp文件里使用#ifndef/ifdef之类的进行条件编译
[解决办法]
不一定会导致错误。
extern int debug;
这一句正是要声明一个在别的某个地方定义的全局变量,比如它可能在somewhere.c中定义,也可能已经编译成库somelib.lib中可以直接使用,只要你在链接(link)时编译并包含了这些文件就没有问题了。