C言語の移植性を高める
移植性のあるコードである方が開発コストを減らすことができる
stdint.hの(u)int8_t、(u)int16_t、(u)int32_t、(u)int64_tを使ったコードを書く stdint.hを使用した際にはprintfの書式指定子(%dや%luなど)が変化変化するためinttypes.hを使う char型は使わず、uint8_tを使う
char型はパッと見、符号なしで扱われるかと思いきや符号ありであったり、誤ってバイト操作をしてしまいがち
printfなどの書式関連
code:memo.c
int main() {
size_t x = 123;
printf("size_t: %zu", x)
}
エンディアン
アライメント
64ビット化で変更の影響度が大きい場合#pragma pack(n)を使うとか
code:struct.c
struct bar {
int foo0;
int foo1;
int foo2;
long long bar;
};
関連
メモ