我想知道是否有办法在运行时设置#define的值.
我假设在下面的代码中有针对Oracle特定和特定于Sql Server的查询.
#define oracle
// ...
#if oracle
// some code
#else
// some different code.
#endif
Run Code Online (Sandbox Code Playgroud)
Ana*_*tts 14
绝对不是,#define在编译器甚至看到它之前由预处理器编译出来 - 所以令牌'oracle'甚至不在你的代码中,只是'1'或'0'.将#define更改为全局变量或(更好)返回正确值的函数.