相关疑难解决方法(0)

C宏是否隐式投射?

我搜索了SO,但没有找到这个具体问题的答案.请原谅我已经回答了.

如果您有以下内容:

#define MACRO  40
Run Code Online (Sandbox Code Playgroud)

您不将它分配给在循环中使用它的变量:

for(int i = 0; i < MACRO; i++) {...
Run Code Online (Sandbox Code Playgroud)

然后,每个处理器创建:

for(int i = 0; i < 40; i++) {...
Run Code Online (Sandbox Code Playgroud)

然后编译器会将它隐式地转换为int,因为比较是使用类型int i吗?我看过这个问题#define变量的类型,而Edgar Bonet的一些答案暗示了编译器选择如何处理宏的顺序?

这个问题,C++如何隐式地将参数转换为比较器,如<?,也有人建议,但只描述了隐式转换如何与两种类型进行比较.由于宏实际上没有类型,我不确定这是否适用.

c c++ macros types c-preprocessor

6
推荐指数
3
解决办法
2936
查看次数

标签 统计

c ×1

c++ ×1

c-preprocessor ×1

macros ×1

types ×1