C sizeof演算子 新しいページはコチラ
提供: yonewiki
(→sizeof演算子) |
(→sizeof演算子) |
||
85行: | 85行: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
上記のように配列の大きさを取得することもできますが、ポインタの型を指定した場合は32ビットアプリならアドレス変数の大きさである4byteが返ってきます。したがって、動的に生成した変数の配列の大きさは取得できません。プログラマ自身が管理する必要のある大きさであることを覚えておくと良いと思います。 | 上記のように配列の大きさを取得することもできますが、ポインタの型を指定した場合は32ビットアプリならアドレス変数の大きさである4byteが返ってきます。したがって、動的に生成した変数の配列の大きさは取得できません。プログラマ自身が管理する必要のある大きさであることを覚えておくと良いと思います。 | ||
+ | |||
+ | |||
+ | まめ知識になるかもしれませんが、1バイトのビット長は処理系によって異なるため'''CHAR_BIT'''に定義されていることになっています。1Byte = 8bitと決め打ちせずにビット数を求める場合は'''sizeof(int) * CHAR_BIT'''のように積を求めて値を取得するようにしましょう。sizeof(int) * 8としても、大抵の場合は問題にならないと思いますが、ソースを開示するようなサンプルには汎用性があった方が使いやすいかもしれません。誰が?… コピペする人が。なんじゃそりゃ。どうでもええですね。 |