#define在.h文件和.cpp文件使用有何区别?
例如:
我在a.h文件中
inline void fun()
{
#ifndef ABC
//1
#else
//2
#endif
}
在c.cpp中
void Test()
{
#define ABC
fun();//这里我只是想调用2,为啥不能得到我的预期?而是到了1中?
#undef ABC
}
[解决办法]
预编译是最早发生的。
[解决办法]
要把#define ABC放在#include "a.h"之前。
[解决办法]
去弄清楚什么叫预编译命令
去弄清楚什么叫预编译,什么叫编译,什么叫链接,什么叫执行
别想当然的写代码,写代码之前先弄清楚你写的是啥
谁告诉你#define可以用来做这种事情了?你自己发明的语法!
[解决办法]
1、2、3楼均正解
[解决办法]
[解决办法]
define是属于预编译。
inline void fun()
{
#ifndef ABC
//1
#else
//2
#endif
}
预编译这个函数时,在这个文件之前无法找到那个宏,所以就会把//1这部分代码编进去了。