解决头文件定义变量的问题,巧用宏定义(续)

来源:互联网 发布:js copy对象 编辑:程序博客网 时间:2024/06/03 22:56

继昨天遇到的头文件定义变量问题,总得要想办法解决啊,不然xcode没法调试啊~~

改还得要从头文件改起,想到符号重复问题是因为多个.c都包含了这个头文件,都定义了一次,所以链接就不知道要哪一个了啊,常见的解决办法不就是加extern呗。但是这个工程师所有的都是包含的一个“万能”头文件,所以要是加了extern不就没定义了么?说到这儿可能有人已经想到解决办法了,没错,就是让其中一个包含这个头文件的.c文件来定义,其他的所有.c文件都是extern的声明就好了,所以必然要用宏了呗

#ifdef   XXX

XXX

#else

extern XXX

#endif

答题就是如此了,在其中一个.c文件中#define XXX就好了,千万不能再工程中定义这个宏,否则所有的.c文件就都有这个宏定义了。

但是总不可能让我吧所有的变量都加上exter吧,好累哦,想到一个好办法,还是只有用宏

#define int extern int

#define short extern short


XXXXX


#undef int

#undef short

这样就好了,记住后面一定要有#undef 不然不就乱套了。看来有时候宏定义真是个好东西。

终于可以愉快地研究算法了,呵呵!

最后附上一张调试成功的图吧:

0 0
原创粉丝点击