C 在while循环中使用define

C 在while循环中使用define,c,loops,c-preprocessor,C,Loops,C Preprocessor,我正在学习如何用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; } 当我试图编译代码时,我

我正在学习如何用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”让它工作,但我认为这不是最好的。

使用

定义数值3定义数值=3的整数 使用

define NUM 3

您可以使用define来声明宏,在某些情况下可以将其视为一种常量

实际上,编译器会用宏文本替换出现的宏。在你的情况下,=3。这将导致whilei<=3,这是一个语法错误

写入宏的正确方法是:

#define NUM 3
要定义实常量,请使用const关键字

应该是

#define NUM 3

学习使用编译器的“仅预处理”选项,以便解决这些问题 你自己

例如

您可以使用bar.c中的line指令宏的偏移量找到第9行,但它显示得很清楚 您的错误:

while(i< = 3){

-对这个问题投1比1的赞成票……我喜欢把const读成只读:const不是一个真正的常量:+1表示一个真正的语句,但是-1表示没有解释为什么在我
% gcc -E foo.c > bar.c
while(i< = 3){