在while循环中使用#define

Sve*_*xix 0 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;
 }
Run Code Online (Sandbox Code Playgroud)

当我尝试编译代码时,我收到以下错误.

helloWorld.c:在函数'main'中:
helloWorld.c:9:错误:在'='标记之前的预期表达式

(对于那些不想计算的人,第9行是while循环声明).如何使用预处理器函数执行此操作,这是在C中使用常量值的最佳方法吗?我可以使用'const'来使用它,但我不认为这是最好的.

Gau*_*rav 7

使用

#define NUM 3 intead of #define NUM = 3


Jon*_*ood 5

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

实际上,会发生什么是编译器用宏文本替换任何出现的宏.在你的情况下,= 3.这导致while(i < = 3),这是语法错误.

编写宏的正确方法是:

#define NUM 3
Run Code Online (Sandbox Code Playgroud)

要定义实常数,请使用const关键字.