0

プリプロセッサディレクティブで定義された変数を使用しようとする場合:

  #define TIME_CONST 20;

しばらくの間:

  while(i<TIME_CONST){...}

括弧について不平を言うエラーが表示されます...

私が使用するとき:

  while(i<20)

すべてが正常に動作します。

私は何が間違っているのですか?

前もって感謝します!

4

1 に答える 1

9
#define TIME_CONST 20;

最後から取り外し;ます。

のため;、次のようになります。

while(i<TIME_CONST){...}

これになります:

while(i< 20;){...}

どちらが間違っていますか?

C ++(およびC)では、マクロはテキスト置換メカニズムであるため、の使用法は、それが定義されている方法であるため、TIME_CONSTに置き換えられます。20;

アドバイス:マクロはできるだけ避けてください。C++ではより良い代替手段があります。const(または)を使用して、実際に定数のオブジェクトconstexprを定義します。

const int TIME_CONST = 20;

;は大丈夫です、実際には言語によって要求されます。

于 2013-03-08T12:31:27.543 に答える