平田@マイクロフトです
> とはいえ、組み込み系を書いてると、仕様に反しており、
> 移植性などの美が欠落し、しかも姑息と思われる手段も
> 使ってしまうのは、わたしだけでしょうか。
確かに忙しいと姑息な手段を私もよく使いますが(^_^) 構造体だけは注意していま
す。特にワード界面にshortがおけないCPU用の場合、たとえば
struct test1 {
char a;
short b;
char c;
}
これを
struct test2 {
char a;
char dummy1;
short b;
char c;
char dummy2;
}
こんな感じに展開したり
struct test3 {
char a, c;
short b;
}
こんな感じでメモリー展開する実装を何度かみかけたからです。ですから姑息な手
段を利用する場合は、コンパイラにアセンブラソースを吐き出させて構造体の配列を
確認したあとで,でっかく「**Cコンパイラ(**CPU用)」などと明記して
使っています。
プティマイズの指定で、「メモリー節約型」を指定すると上のtest3みたいに
配置してくれるコンパイラがあります。
===========================================
平田祥司 Shouji Hirata(GLP)
E-mail : shouji@xxxxxxxxxxxxx
===========================================