ページ 1 / 1
size_tの取れる値
Posted: 2012年1月14日(土) 13:03
by 史上最悪のデスペナ
調べても分からなかったので教えてください。
size_tはいくつまでの値を取れるのでしょう?
具体的には、
size_t strlen();
という関数はいくつまでの文字数なら取得できるのでしょうか?
Re: size_tの取れる値
Posted: 2012年1月14日(土) 13:05
by beatle
C++でよければ
コード:
#include <limits>
std::numeric_limits<size_t>::max()
Re: size_tの取れる値
Posted: 2012年1月14日(土) 13:09
by softya(ソフト屋)
size_tは環境依存ですので環境によって代わります。
VC++でも32bitコンパイルと64bitコンパイルで違うサイズです。
Re: size_tの取れる値
Posted: 2012年1月14日(土) 13:32
by 史上最悪のデスペナ
すごい初歩的な質問なのですが、
softya(ソフト屋) さんが書きました:size_tは環境依存ですので環境によって代わります。
とのことですが、
セーブロードのプログラムを組んで、size_tの最大値の違う環境でそのプログラムを動かしたとき、
読み込み量をsizeof(size_t)なんてやってると読み込まれる量が違ってきちゃうんでしょうか?
Re: size_tの取れる値
Posted: 2012年1月14日(土) 13:50
by softya(ソフト屋)
コンパイル時に決まりますので、同じコンパイラで同じモード(32/64)であれば大丈夫です。
Re: size_tの取れる値
Posted: 2012年1月14日(土) 13:50
by softya(ソフト屋)
コンパイル時に決まりますので、同じコンパイラで同じモード(32/64)であれば大丈夫です。
実行時はOSが互換を取ってくれます。
Re: size_tの取れる値
Posted: 2012年1月14日(土) 14:57
by 史上最悪のデスペナ
softya(ソフト屋) さんが書きました:実行時はOSが互換を取ってくれます。
OSって凄いですね(小学生並みの感想)
Re: size_tの取れる値
Posted: 2012年1月14日(土) 15:15
by softya(ソフト屋)
ことば足らずだったので、strlenの場合はコンパイラとライブラリ(OSは64bitライブラリと32bitライブラリが混じらないように管理)が保証します。ファイルなどOSが絡むライブラリ関数などはOSが保証します。