Kazuhiro NISHIYAMA
zn****@mbf*****
2007年 3月 23日 (金) 16:53:52 JST
西山和広です。 At Fri, 23 Mar 2007 16:25:18 +0900, Kouhei Sutou wrote: > > > 予約済み識別子は使わない方が良いのではないでしょうか? > > (_I...ではなく_i...にするとか) > > 何が予約済み識別子なのか教えてもらえませんか? 主なものは、C言語では、 http://portable-c.jugem.jp/?eid=10 | まず、下線で始まり、下線または大文字が続く識別子は予約されています。 で、C++まで考慮すると | さらに、C++のことも配慮するのであれば、連続する下線を含む識別子も予 | 約済みとして扱うべきです。連続した下線は、識別子の先頭だけでなく、途 | 中や最後に現れても駄目です。 となっているようです。 他にも http://homepage3.nifty.com/mmgames/c_guide/01-01.html | [ 予約済み識別子 ] | C言語では、予約語の他、予約済み識別子も名前として使用できません。 | 予約済み識別子は、内部で使用される名前のことで、 | アンダーバーに大文字が続く名前は使用できませんし、 | C言語で標準的につかわれる名前も使用できません。 http://kk.kake.info.waseda.ac.jp/ads06/JIS-C-2003/footnotes.html | 《脚注154》外部結合をもつ予約済み識別子には,errno, | math_errhandling,setjmp及びva_endなどがある。 ということでerrnoなども予約済み識別子になるようです。 _i...と書いてしまいましたが、 http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200304/03040018.txt | ・下線からはじまって,下線または英大文字が続く識別子は全ての利用について予約 | ・下線からはじまる識別子は,通常及びタグ名前空間でのファイルスコープ識別子として予約 | というのが,ISO Cの言い分で, | ・下線が二つ続いたり,下線からはじまって英大文字が続く識別子は実装のために全ての利用について予約 | ・下線からはじまる識別子は,大域名前空間とstd名前空間で,実装が名前として使うために予約 | というのがISO C++の言い分です。 | ref) ISO/IEC 9899:1999 7.1.3 Reserved identifiers | ref) JIS X3010:1993 7.1.3 予約済み識別子 | ref) ISO/IEC 14882:1998 17.4.3.1.2 Global names | なので,下線からはじまる識別子を使うと,場合によってはライブラリが利用している名前と重なって, | エラーが起きる可能性があります。 によるとC++だと_に英小文字が続くものもだめそうな感じです。 -- |ZnZ(ゼット エヌ ゼット) |西山和広(Kazuhiro NISHIYAMA)