アカウント名:
パスワード:
とりあえず、grep __[a-zA-Z] /usr/include/* とでもしてやれば、嫌でもわかるだろ。そもそもアンダーバーは危険が危い系の話は、ジャップランドのローカルルール。C黎明期のム系月刊誌の連中が、「アセンブラに落としこむと全ての関数の頭には__が付く、なので言語側で使うのは危険が危ない」とかいって勝手に決めたローカルルール。この時期に作られた間違った常識に、値を返さないmainはvoidにすべきとか、return 0;は必ず付与すべきとか、もはや無かったことにされてるJ国製組み込み用C++処理系等々がある。
つーか他国の連中と仕事する機会があれば、for (__i
そうも言ってられない例として。うちの環境(ubuntu)だと、↓のコードのコンパイルが通りません。
#define __s 0#include<stdio.h>int main() { printf("Hello, world!\n"); }
理由は stdio.h 内のプロトタイプ宣言の引数名に __s が使われてるから。なんで stdio.h が __s なんて名前を使っているかというと、__s が予約されてるから。
#define s 0
なら通る。言語仕様上通さなきゃならない。だから stdio.h 内のプロトタイプ宣言の引数名に s が使われることはない。
「予約済み」がどういう意味なのかは理解しておくべき。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア
バカすぎて話にならない (スコア:0)
とりあえず、grep __[a-zA-Z] /usr/include/* とでもしてやれば、嫌でもわかるだろ。
そもそもアンダーバーは危険が危い系の話は、ジャップランドのローカルルール。
C黎明期のム系月刊誌の連中が、「アセンブラに落としこむと全ての関数の頭には__が付く、なので言語側で使うのは危険が危ない」とかいって勝手に決めたローカルルール。
この時期に作られた間違った常識に、値を返さないmainはvoidにすべきとか、return 0;は必ず付与すべきとか、もはや無かったことにされてるJ国製組み込み用C++処理系等々がある。
つーか他国の連中と仕事する機会があれば、for (__i
Re:バカすぎて話にならない (スコア:1)
そうも言ってられない例として。
うちの環境(ubuntu)だと、↓のコードのコンパイルが通りません。
#define __s 0
#include<stdio.h>
int main() { printf("Hello, world!\n"); }
理由は stdio.h 内のプロトタイプ宣言の引数名に __s が使われてるから。
なんで stdio.h が __s なんて名前を使っているかというと、__s が予約されてるから。
#define s 0
なら通る。
言語仕様上通さなきゃならない。
だから stdio.h 内のプロトタイプ宣言の引数名に s が使われることはない。
「予約済み」がどういう意味なのかは理解しておくべき。