我正在学习如何在 C 中编程,但我无法弄清楚如何使用常量循环。我的理解是,在 C 中使用常量值的最佳方法是通过#define
语句(如果我错了,请纠正我)。但它似乎没有起作用。
这是我的代码。
#include <stdio.h>
#define NUM = 3
void main(int argc, char *argv[]){
int i=0;
while(i<NUM){
printf("foo ");
i++;
}
return;
}
当我尝试编译代码时,我收到以下错误。
helloWorld.c:在函数'main'中:
helloWorld.c:9:错误:'='标记之前的预期表达式
(对于那些不想计算的人,第9行是while循环声明)。 如何使用预处理器函数执行此操作,这是在C中使用常量值的最佳方法吗?我可以使用'const'来使用它,但我认为这不是最好的。
答案 0 :(得分:7)
使用
#define NUM 3
代替#define NUM = 3
答案 1 :(得分:5)
您使用#define
声明宏,在某些情况下您可以将其视为一种常量。
实际上,会发生什么是编译器用宏文本替换宏的任何出现。在您的情况下,= 3
。这会导致while(i < = 3)
,这是语法错误。
编写宏的正确方法是:
#define NUM 3
要定义实常数,请使用const
关键字。
答案 2 :(得分:1)
#define NUM = 3
使用
#define NUM 3
答案 3 :(得分:1)
了解如何使用您的编译器预处理选项,以便您可以解决这些问题 自己。
E.G。
% gcc -E foo.c > bar.c
您可以使用bar.c中行指令宏的偏移量找到第9行,但它显示清楚 你的错误:
while(i< = 3){
答案 4 :(得分:0)
#define NUM = 3
应该是
#define NUM 3