single quoteで4バイトの文字列
C++特有かCの問題なのかはっきりしないので、fj.comp.lang.cと
fj.comp.lang.c++の両方に投稿させていただきます。
あるオープンソース(C++)をいじっているのですが、それはMac OS X向けは
Project Builderで、Windows向けはVisual C++でコンパイルさせる前提です。
無料で入手できるソースなのにWindows向けが有料の開発環境では不公平と
思いましたのでBorland C++の無料提供版で試したところ、うまく行きません
でした。問題箇所を追いつめたところ、
unsigned long chunk = '0MFS';
というようにsingle quoteで4バイトの文字列を囲んでいる箇所とわかりました。
chunkに入る値がProject BuilderとVisual C++では0x304d4653に対し、
Borland C++では0x53464d30であり、ちょうどエンディアンがひっくり返った
ような結果となりました。そこまではいいとして、疑問に思ったのは
single quoteで4バイトの文字列を定数にするというのは標準規格になかった
ように思うのですが、これはどうなのでしょうか?ひょっとして自分が知らない
間に規格になったのか、あるいは将来、規格になるものなのでしょうか。
--
D.Miyasaka <mailto:miyanews@anet.ne.jp>
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