All identifiers that begin with an underscore and either an uppercase letter or another underscore are always reserved for any use.
All identifiers that begin with an underscore are always reserved for use as identifiers with file scope in both the ordinary and tag name spaces.
アホな保守スタッフのために・・・ (スコア:1)
なんていう配慮をしなくてよくなる未来。
Re: (スコア:0)
return *p = getchar();
}
while(_getchar(&c) != EOF)
ってやりなよ。
Re:アホな保守スタッフのために・・・ (スコア:0)
先頭がアンダーバーの識別子は処理系や標準ライブラリのために予約されているので使えない、なんて初歩的なことをわざわざ#1561133みたいなアホな保守スタッフに説明しなくてもよくなる未来。
Re: (スコア:0)
中途半端な理解しかしていなのに、初歩的なことだと思い込んで仕様を確認しない人も困る。
Re:アホな保守スタッフのために・・・ (スコア:1)
私も疑問に感じて調べていたのですが、
アンダースコア+大文字、アンダースコア二つで始まる識別子は常に予約されている。
アンダースコアで始まる、ファイルスコープの識別子は、通常の名前空間とタグ名前空間で予約されている。
ファイルスコープの識別子の扱いが別になるのが、ちょっと不思議ですね。
Re:アホな保守スタッフのために・・・ (スコア:1)
Re: (スコア:0)
ありゃ、私、何か勘違いしてます?
Re: (スコア:0)
C言語では関数のネストはできないんだから関数定義はファイルスコープに決まってるでしょうが。
仕様の文字列を一字一句そのまんま暗記するしか能がないくせに他人の揚げ足を取ったつもりになってる奴は手に負えない。
Re: (スコア:0)
>C言語では関数のネストはできないんだから関数定義はファイルスコープに決まってるでしょうが。
決まってない。staticの有無で、ファイルスコープになるか、それより広いスコープ(グローバルだったか?用語忘れた)になるか、が変わるのでは。
C知識としてもそうだし、知識はさておき論理的に考えて「関数ネストが無い」ことと「ファイルスコープ」とのあいだには微妙な隙間があることに気づいてくれ。
#「論理的に」いえば、関数の途中でファイルをぶった切ることが出来るという選択肢も有るが、Cでは採用してないので無視。
##要するに「ファイルスコープ」と「(グローバルのみの)関数スコープ」とがそれぞれ独立にY/Nがあると考えるわけ。それぞれY/Nがある4象限グラフね。