我有以下c代码。
#include <stdio.h>
#define MAX_NUMBER 100;
#define MIN_NUMBER 10;
int main()
{
printf("\nThis is a wonderful test for loops\n");
int i = 12;
while(i < MAX_NUMBER)
{
printf(" The value of i is %d \n", i);
i += 10;
}
return 0;
}
编译时,我收到以下错误消息。
loop.c: In function ‘main’:
loop.c:11: error: expected ‘)’ before ‘;’ token
但是如果在while循环中替换MAX_NUMBER,它会编译并顺利运行。请告诉我如何在while循环中使用常量。
答案 0 :(得分:2)
您最后使用;
定义了您的宏:
#define MAX_NUMBER 100;
#define MIN_NUMBER 10;
while
看起来像这样......
while(i < 100;)
...并且编译器正确地抱怨:在)
之前预期;
。
删除分号。
答案 1 :(得分:2)
不要在你的#defines中放置半色调!
#include <stdio.h>
#define MAX_NUMBER 100
#define MIN_NUMBER 10
int main()
{
printf("\nThis is a wonderful test for loops\n");
int i = 12;
while(i < MAX_NUMBER)
{
答案 2 :(得分:2)
在以下宏的末尾删除分号
#define MAX_NUMBER 100;
#define MIN_NUMBER 10;
应该是
#define MAX_NUMBER 100
#define MIN_NUMBER 10
您的代码将按此转换
#include <stdio.h>
#define MAX_NUMBER 100;
#define MIN_NUMBER 10;
int main()
{
printf("\nThis is a wonderful test for loops\n");
int i = 12;
while(i < 100;)
{
printf(" The value of i is %d \n", i);
i += 10;
}
return 0;
}
由于while条件语句中的分号,您将收到错误。 条件应该是
while(i < 100)
答案 3 :(得分:1)
作为您的代码,编译器将其“翻译”为:
while(i < 100;)
您知道如何修改代码吗?
答案 4 :(得分:0)
检查define关键字的语法及其使用一次。
#define token [value]
如果任何语句以#符号开头,则不必以半冒号(;)结束。