我是一名计算机科学学生,正在学习 C。我有一个作业,其中老师给了我们一个 .h 和两个 .c 文件,其中包含需要我们完成才能使函数正常工作的代码段。
在头文件中,他有以下#define 语句:
# ifndef LT
# define LT(A, B) ((A) < (B))
# endif
# ifndef EQ
# define EQ(A, B) ((A) == (B))
# endif
对于第一个定义,我知道 LT 是“名称”,但我不明白右侧的语法在做什么。与第二个相同。
在我看来,LT 是两个变量 A 和 B 的比较,它检查 A 是否大于 B。
有人可以帮助我理解这一点吗
最佳答案
这些是宏。
如果你的c代码中有
if(LT(xx, yy))
{
printf("xx is less than yy\n");
}
然后在编译时代码更改为
if((xx) < (yy))
{
printf("xx is less than yy\n");
}
这是通过预处理器将它看到的#define 的东西更改为其内容来完成的
关于c - 需要帮助理解 C 中的特定定义指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36656053/