無限ループは泣く。
Re: 無限ループは泣く。
アンダーバーで始まる識別子は処理系予約なので使わないほうが良いですよ、と無粋なことを言ってみる。
ウチもfor(;;)派です。
ウチもfor(;;)派です。
Re: 無限ループは泣く。
> バグ さん
チャットだと笑うんですよね。 for(;_(笑)) みたいな感じで。
> ISLe さん
使わない方がいいというよりも、なに気に未定義コードなので、使ってはならない。 と言った方が正確かもしれません。
ちなみに、規格で予約識別子とされるのは、アンダーバーから始まり、続いてアンダーバーか、大文字英字が続く識別子のみです。
アンダーバーから始まり、小文字英数が続く識別子は、処理系依存となります。
で、アンダーバー1個のみで構成された識別子については言及されてないのですが、規格的にはどうなんでしょうねこれ。
> パコネコ さん
ね。 可愛いですよね。 (;_;)
チャットだと笑うんですよね。 for(;_(笑)) みたいな感じで。
> ISLe さん
使わない方がいいというよりも、なに気に未定義コードなので、使ってはならない。 と言った方が正確かもしれません。
ちなみに、規格で予約識別子とされるのは、アンダーバーから始まり、続いてアンダーバーか、大文字英字が続く識別子のみです。
アンダーバーから始まり、小文字英数が続く識別子は、処理系依存となります。
で、アンダーバー1個のみで構成された識別子については言及されてないのですが、規格的にはどうなんでしょうねこれ。
> パコネコ さん
ね。 可愛いですよね。 (;_;)
Re: 無限ループは泣く。
C++だと『ふたつの連続するアンダーバーを含む識別子』となっているので先頭以外でも予約済みです。
あと、アンダーバーで始まる特に既定のない識別子は処理系依存と言えますが、『将来に渡って処理系が大域的に使用するために予約されている』というのが正確なところなので、「コンパイラが変わったら#defineで違うものに置き換えられるようになっちゃった」とならないように使わないほうが無難というわけですね。
#予約済み識別子を#undefしたときの動作は未定義となってます。
アンダーバー1個のみも処理系が自由に使って良い識別子に含まれますね。
あと、アンダーバーで始まる特に既定のない識別子は処理系依存と言えますが、『将来に渡って処理系が大域的に使用するために予約されている』というのが正確なところなので、「コンパイラが変わったら#defineで違うものに置き換えられるようになっちゃった」とならないように使わないほうが無難というわけですね。
#予約済み識別子を#undefしたときの動作は未定義となってます。
アンダーバー1個のみも処理系が自由に使って良い識別子に含まれますね。