gpt4 book ai didi

检查 int 是否被定义为宏。 C

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:07 26 4
gpt4 key购买 nike

我试过四处查看,但似乎找不到答案。

我正在编写一些 C 代码,我想弄清楚给定的 int i 是否在某处定义为宏。例如,运行 for 循环检查计数器是否为宏。我想出了以下内容,但它在我编译时给我警告,所以我假设它是错误的代码

for(int i = 1; i < 25; i++){
#define DEFINED 1
#ifndef i
#define DEFINED 0
#endif
int a = DEFINED;
if(a){
bla bla
}
}

非常感谢。

最佳答案

简短回答:您不能将i 用作预处理器表达式中的条件。您甚至无法检查它是否已定义。

更长的答案:预处理是早期翻译阶段之一。它甚至发生在代码编译之前。 i 的值仅在运行时可用。意思是在程序被编译、链接并执行之后。这两个阶段尽可能远。

您也无法检查是否定义了 i 变量,因为符号 i 仅在编译阶段才被称为变量(同样,在预处理器之后已完成运行)。

的确,预处理器允许您有条件地编译代码,但您不能将这些条件建立在只有在后期翻译阶段才知道的事情上。

关于检查 int 是否被定义为宏。 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41721899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com