C言語で、処理系に依存しないプログラムを書くときに、よく気にするデータ型と特徴をメモ。
<void*>
汎用ポインタのデータ型。間接参照(値の参照)する際はキャストしてから処理する必要。
sizeof(void*)の結果は処理系依存だが、処理系に依存せずポインタを格納できる。
<size_t>
sizeof()の結果を格納できるデータ型。
sizeof(size_t)の結果は処理系依存だが、処理系に依存せず符号なし。
<char>
処理系に依存せずsizeof(char)の結果は1(1バイト)だが、符号有無は処理系依存。
<int>
sizeof(int)の結果は処理系依存だが、処理系に依存せず符号あり。
※char型の符号有無が処理系依存ゆえ、fgetc()はEOFマクロ(通常:-1)が取り扱えるようint型を返す。
<void*>
汎用ポインタのデータ型。間接参照(値の参照)する際はキャストしてから処理する必要。
sizeof(void*)の結果は処理系依存だが、処理系に依存せずポインタを格納できる。
<size_t>
sizeof()の結果を格納できるデータ型。
sizeof(size_t)の結果は処理系依存だが、処理系に依存せず符号なし。
<char>
処理系に依存せずsizeof(char)の結果は1(1バイト)だが、符号有無は処理系依存。
<int>
sizeof(int)の結果は処理系依存だが、処理系に依存せず符号あり。
※char型の符号有無が処理系依存ゆえ、fgetc()はEOFマクロ(通常:-1)が取り扱えるようint型を返す。
※コメント投稿者のブログIDはブログ作成者のみに通知されます