2014-02-26 45 views
0

我有以下c代碼。在while循環中使用常量(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循環中使用常量。

+5

從'#define'行刪除結尾分號。它的工作原理是 – DCoder

+0

。謝謝。 – fSazy

回答

2

你有;末定義了宏:

#define MAX_NUMBER 100; 
#define MIN_NUMBER 10; 

while看起來像這樣...

while(i < 100;) 

...和編譯器理所當然地抱怨:;之前預期)

刪除分號。

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

在年底卸下以下宏

#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; 
} 

因爲分號在同時條件統計ement你得到錯誤。 雖然條件應該是

while(i < 100) 
1

當你的代碼中,compliler「翻譯」這樣的:

while(i < 100;) 

你知道如何修改密碼?

+0

是的,我已經根據@DCoder的評論進行了修改 – fSazy

0

檢查define關鍵字的語法及其用法一次。

#define token [value] 

如果任何語句以#符號開頭,則不必以分號(;)結束。