0
なぜ私はこれを実行できないのか分かりません。誰かがコンパイルエラーを回避する方法を説明することができます。私はC言語に新しい、Javaから来た。#defineをC言語でスイッチの状態で使用する
エラー:予期しない ':'または '...'の前に ';'将来の視聴者のトークン
なぜ私はこれを実行できないのか分かりません。誰かがコンパイルエラーを回避する方法を説明することができます。私はC言語に新しい、Javaから来た。#defineをC言語でスイッチの状態で使用する
エラー:予期しない ':'または '...'の前に ';'将来の視聴者のトークン
#define NORTH 1;
int main (void){
switch (functionCallThatReturnsAnInt()){
case NORTH : //compile time error here
printf("NORTH");
break;
case 2 : // no compile time error
printf("2");
break;
//removed rest to reduce clutter
}
}
int functionCallThatReturnsAnInt(void){
return NORTH;
}
:
セミコロンをオフのままに定義使用時@PSkocikと@BLUEPIXYによって、上述したように。代わり
#define NORTH;
の
使用
#define NORTH
'の#define NORTH 1;' - > 'の#define NORTH 1 ' – BLUEPIXY
'の#define NORTH 1'。セミコロンはありません。 – PSkocik
'#define'はテキスト置換を行います。識別子の後ろの行の末尾まですべてがそのままコピーされます。したがって、前処理の後、 'case NORTH:'の行は 'case 1 'になります。 : '。 – user3386109