在运行时定义#ifdef

4
我试图在我的程序中使用#ifdef预处理指令。 我希望在运行时定义这个宏(最好是在另一个配置文件中定义这个值),这样我就可以在不编译的情况下随时定义或取消定义它,因此我不想在make文件中定义它。
我在Google上搜索了很多关于这个问题的信息,但是我没有找到我想要的确切信息。
有没有办法在运行时定义它? 如果有,请给予建议。

3
“预处理器”是指在编译器处理源代码之前运行。所以,如果我理解你的意思正确的话,这完全是无稽之谈。就像在程序被编写和编译之前运行一样?不可能。 - Al Kepp
可能是在C语言中运行时更改宏的重复问题。 - hola
1个回答

6
不,#ifdef和其他#指令仅在编译期间使用,实际上甚至会在编译之前由一个(内部)工具称为预处理器来使用。
如果您想要运行时可配置性,您需要使用普通的if语句等。或者创建两个相同程序的构建版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接