1

重複の可能性:
Cでのマクロ定義エラー?

私はプログラミングに不慣れで、誰かがこれを手伝ってくれることを願っています:

なぜそれは出力を与えるのですか:5。
コードスニペットは次のとおりです。

#include <stdio.h>
#define max 5;

int main(){
int i=0;
i = max+1;
printf("\n%d",i);
return 0;
}
4

3 に答える 3

14

マクロにはセミコロンがあるためです。コードは次のものと同等です。

i = 5; + 1;

マクロからセミコロンを削除します。

于 2012-11-16T22:36:06.330 に答える
5

重要なポイントは

#define max 5;

プリプロセッサで置き換えると、これは次のようになります。

i = 5; +1;

これは変数に5を割り当てますi(式+1;は効果がありません)。

あなたは書く必要があります

#define max 5
于 2012-11-16T22:37:09.830 に答える
2

マクロ定義の後にセミコロンがあるためx=

于 2012-11-16T22:37:44.927 に答える