2017-09-08 10 views
-6

私は新しいbie to C++です。私はC++の本の中で次の文が見つかりました:

2x    // a name must start with a letter 
time$to$market // $ is not a letter, digit, or underscore 
Start menu  // space is not a letter, digit, or underscore 

質問:「任意のC++プログラムでは、変数名は文字で始まり、文字、数字が含まれており、underscores.Theは、次のではない変数名です」なぜtime$to$marketは変数名ではないのですか? 私はそれをコンパイルしようとしましたが、コンパイラは不平を言っていませんでしたが、

+0

特殊文字のうち、変数名に$記号を使用することはできません。特殊文字のうち、アンダースコアのみが許可されます。 –

+3

GCC(そしておそらく他のもの)は、識別子に '$'を許す拡張子を持っています。 – Quentin

+1

dude、文字は 'a-z'と' A-Z'を意味します。数字は「0-9」を意味する。アンダースコアは '_'を意味します。 – Yves

答えて

1

I tried to use it and the compiler did not give error.

現在のコンパイラがサポートしていても(クエンティンがコメント内で指摘しているように)、それをしないでください。これは標準ではないので、あなたのコードは他の環境に移植することも、別の標準を使って同じコンパイラに移植することもできません(GCCオプション-ansi-std=c++11etc.を試してください)。起こることができる最高のことは、コンパイル時にエラーが出ることです。最悪のことは、あなたが何時間も後に狩りをする未定義の動作です。

1

コンパイラにはさまざまなバリエーションがあります。 1つはより速くコンパイルすることができ、何らかの理由でデフォルト設定と異なる場合があります。私はどのコンパイラを使用しているのか分かりません。しかし、あなたがコンパイラで少しのreaserchを作るなら、$が許されていることが分かります。あなたの本を正確に追いかけるために別のコンパイラでコンパイルしてみてください。このトピックをチェックして、純粋なC++の意味を確認してください。本は通常、純粋な言葉を教えるからです。

What is pure C++

0

私はTC 4.5で使用していて、そのは完全にそれがこのエラーを表示し、使用しているコンパイラによって異なります。

Compiling DEMO.C:

Illegal character '$' (0x24)

いくつかのコンパイラはそれをサポートすることができます。

関連する問題