未定義の動作にはどのようなものがあるのでしょうか。C言語の標準規格であるJIS X 3010:2003(ISO/IEC 9899:1999)の「附属書J 可搬性」を参考に未定義の動作を列挙してみましょう。 規格の制約以外の箇所で現れる「…(し)なければならない」または「…(し)てはならない」という要求をプログラムが守っていない場合。(前提事項4) 空でないソースファイルが、改行文字で終了していない場合。改行文字で終了している場合で、その直前に逆斜線文字がある場合。ソースファイルが、前処理字句の途中または注釈の途中で終了している場合。(5.1.1.2) ##演算子による字句連結の結果として生成される文字の並びが国際文字名の構文規則に一致する場合。(5.1.1.2) ホスト環境のプログラムがmainという名前の関数を5.1.2.2.1で定められる4種類の方法のいずれかで定義しない場合。(5.1