2016-07-16 14 views
0

ほとんどのプログラミング言語では、変数名は文字またはアンダースコアで始まり、文字、数字、およびアンダースコア文字の組み合わせが続きます。私はこれをc、C++、php($の後)で見つけました。変数名 - 文字またはアンダースコアで始まるのはなぜですか?

  1. これは、コンパイラ/インタプリタの作者に続くコンベンションですか、それとも実用的な理由がありますか?

  2. なぜこれらの言語の文字、アンダースコア、数字のみで変数名を構成する必要があるのですか? 4Uが整数または識別子であるか否かを

+1

C++には、アンダースコアを使用する必要があるかどうかを指定するルールがあります。もっと詳しくはこちら:http://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-ac-identifier – user4581301

+1

すべての言語には行動規範があるので、Cにようこそ。 – dreamBegin

+1

'if(123f == 456l){' < - 1つは定数の数値で、もう1つは数字で始まる変数名です。コンパイラはもちろんのこと、どうしたらうまくいくのでしょうか? –

答えて

1
  1. これはあいまいになります。これは、4が単独で無効な識別子であると仮定しています。
  2. #include,a*aおよび他の構築物はあいまいである。

_は演算子として使用されず、[A-Za-z_]で始まる単語は、事前定義キーワードまたは識別子のいずれかです。あいまいさはありません。

+0

なぜその_は演算子ではありませんか?どうして〜ではなく〜f?私の質問は、それは慣習に従っている_それは演算子として使用されることはありません?それらが派生した先の言語のいずれかから派生していますか?他の回答がなく、部分的に私の質問に答えているので、私はあなたの答えを受け入れています。返信ありがとうございます。 –

+1

@Bittoパンチカードの単語区切り文字として使用するために、EBCDIC文字セットに '_'を導入したのはIBMにまでさかのぼります。 ASCIIもそれを採用し、FORTRANはそれを識別子で許可しました。異なるオペレーターの背後にある歴史について疑問に思っているなら、プログラマーに尋ねることができます。 – a3f

関連する問題