無限ループは泣く。

アバター
へろりくしょん
記事: 92
登録日時: 14年前
住所: 福岡

無限ループは泣く。

投稿記事 by へろりくしょん » 14年前

CODE:

int _ = 1;

for(;_;){
    printf("%s\n", "うわーん");
}
なーんてね。 ちょっと可愛いですよね。

アバター
バグ
記事: 130
登録日時: 14年前

Re: 無限ループは泣く。

投稿記事 by バグ » 14年前

前にfor涙目とか言われたことありますw

ISLe
記事: 2650
登録日時: 14年前

Re: 無限ループは泣く。

投稿記事 by ISLe » 14年前

アンダーバーで始まる識別子は処理系予約なので使わないほうが良いですよ、と無粋なことを言ってみる。

ウチもfor(;;)派です。

アバター
パコネコ
記事: 139
登録日時: 14年前

Re: 無限ループは泣く。

投稿記事 by パコネコ » 14年前

意味理解するのに時間かかりました・・・
確かにちょっとかわいいかも・・・
うわーんってヽ(^o^)丿

アバター
へろりくしょん
記事: 92
登録日時: 14年前
住所: 福岡

Re: 無限ループは泣く。

投稿記事 by へろりくしょん » 14年前

> バグ さん

チャットだと笑うんですよね。 for(;_(笑)) みたいな感じで。


> ISLe さん

使わない方がいいというよりも、なに気に未定義コードなので、使ってはならない。 と言った方が正確かもしれません。

ちなみに、規格で予約識別子とされるのは、アンダーバーから始まり、続いてアンダーバーか、大文字英字が続く識別子のみです。
アンダーバーから始まり、小文字英数が続く識別子は、処理系依存となります。

で、アンダーバー1個のみで構成された識別子については言及されてないのですが、規格的にはどうなんでしょうねこれ。


> パコネコ さん

ね。 可愛いですよね。 (;_;)

ISLe
記事: 2650
登録日時: 14年前

Re: 無限ループは泣く。

投稿記事 by ISLe » 14年前

C++だと『ふたつの連続するアンダーバーを含む識別子』となっているので先頭以外でも予約済みです。
あと、アンダーバーで始まる特に既定のない識別子は処理系依存と言えますが、『将来に渡って処理系が大域的に使用するために予約されている』というのが正確なところなので、「コンパイラが変わったら#defineで違うものに置き換えられるようになっちゃった」とならないように使わないほうが無難というわけですね。
#予約済み識別子を#undefしたときの動作は未定義となってます。

アンダーバー1個のみも処理系が自由に使って良い識別子に含まれますね。