C の変数宣言のかっこ
C プログラミングでは、変数宣言をかっこで囲むことができるという独特の現象が発生しました。この側面は陰謀を生み、その機能についての疑問を引き起こしています。
コード スニペットを考えてみましょう:
<code class="cpp">int main() { int(s); }</code>
驚くべきことに、このコードは s という名前の有効な変数を作成し、基礎となるメカニズムのさらなる調査を促しています。 .
C 標準の [dcl.meaning] によると:
「D の形式が ( D1 ) である宣言 T D では、含まれる宣言子 ID の型は同じです」 "
このステートメントは、括弧が埋め込まれた宣言子 ID (この場合は s) の型を変更しないことを示します。ただし、複雑な宣言子のバインディングに影響を与える可能性があります。
単純に言えば、C 文法では括弧は任意の宣言子を囲むことができます。たとえば、指定されたコードでは、 s は宣言子であり、括弧はその意味を変更しません。
括弧の有用性は、より複雑なシナリオを扱うときに明らかになります。次の例を考えてみましょう:
<code class="cpp">int * a [10]; // a is an array of ten pointers to int. int ( * b ) [10]; // b is a pointer to an array of ten ints.</code>
この場合、括弧を使用することで 2 つのポインター型を効果的に区別できます。これらがなければ、これらの宣言の解釈は不明確になります。
以上がC の変数宣言で括弧が使用されるのはいつ、なぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。