deprecation and extenstion of C 言語
河野真治 @ 琉球大学情報工学です。(なんとなくSubjectに日本語
入れたりして)
gcc version 3.3 20030304 (Apple Computer, Inc. build 1495)
なんですが、(もちろん、-Wall なんだけど)
warning: deprecated use of label at end of compound statement
ってエラーを食らったんですけど...
enum fuga hoge;
switch (hoge) {
case HAGE:
... break;
default: <--- ここ
}
warning: enumeration value `FUGA' not handled in switch
っていうから、default: を入れたのに。
default: break;
で消えるようなんですけど、なんか、なっとくできんな。deprecated
ってことは、何かの規格で禁止されたとかそんなことなのか? なんで、
deprecated なんでしょう?
そういえば、
i = ({ for(j=0;j<10;j++) { }; j ; });
みたいな拡張もあるみたいだし。
__label__ exit0;
void *exit = &&exit0;
goto *exit;
なんてのもあるのか。
両方とも、asm がらみで導入されたみたいですけど、プログラム
スパゲティ化専用構文みたい。
---
Shinji KONO @ Information Engineering, University of the Ryukyus
河野真治 @ 琉球大学工学部情報工学科
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735