- ベストアンサー
【C言語】 型のサイズについて
C言語の学習をしております初心者です。 型のサイズについてですが、int型のサイズは処理系に依存する、 ということをよく聞きますが、この「処理系」というのは そのアプリケーションを動作させるマシンに搭載されている"CPU"を 指しているのでしょうか? それとも"OS"を指しているのでしょうか?
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- C言語の変数の型がわかりません
C言語の変数の型がわかりません [int]は4バイトを使って整数(-2147483648~2147483648)を格納できる. [long int]は4バイトを使って整数(-2147483648~2147483648)を格納できる. のようなことが書いてあります. [int]と[long int]の違いは何ですか?
- ベストアンサー
- その他(インターネット・Webサービス)
- C言語の定数のサフィックスについて
C言語に詳しい方はおバカな質問をしていると思われるかもしれませんが、当方はソフトは初心者なのでご容赦ください。 C言語で定数を扱う際に一定以上のサイズの定数の場合L、UL等のサフィックスを付けないと正常に処理されない(例:0x0123456789ABCDEFという定数はサフィックス無しだと0x89ABCDEFとして処理される)仕様になっている事は把握しているのですが、この一定サイズについてご教授願います。 int、long等は処理系によってサイズが何bitになるかが変わりますが、intが16bitの場合は32bitの定数でもサフィックスにL、UL等を付けなければいけないのでしょうか? それともintのサイズに関係なく32bit以下ならサフィックスは不要で、32bitを超える場合はサフィックスが必要になるのでしょうか? また、処理系に依存せず一定のサイズの変数を宣言するのにint32_t、int64_t等がありますが、サフィックスにも同様に処理系に依存せずサイズを明確にする物はあるのでしょうか? 例えば0x0123456789ABCDEFULLとした場合、long longが32bitの場合は32bitの定数として扱われてしまうと思うのですが、定数を処理系に依存せずに確実に64bitとして処理してほしい場合はどの様にすれば良いのでしょうか? (あるサイトに"GCCではlong longが64bitのサイズになるが言語仕様上はビット長は保証されていない"と言う記載があった事から、サフィクスにLLやULLを使用しても64bitで処理される保証が無いと思い、この質問をさせて頂いています。)
- ベストアンサー
- C・C++・C#
- c言語 型変換について
c言語 型変換について 下記のように文字コードは、unsigned int型('B')をunsigned char 型(str[1] ) 格下げする型変換する規則を教えてください。 *質問ソースプログラム: int main(void) { char str[4]; /* 文字列を格納する配列 */ str[0] = 'A'; /* 代入 */ str[1] = 'B'; /* 代入 */ ・・・・・・ printf("size B %u\n",(unsigned)sizeof('B')); printf("size str[1] %u\n",(unsigned)sizeof(str[1])); * 実行結果 size B 4 size str[1] 1
- ベストアンサー
- C・C++・C#
- C/C++の型について
Windows2000で、VC++6で型のサイズを調べると、以下のとおりでした。 int 4バイト long 4バイト long int 4バイト 環境はWindows2000, CPUはCeleron1200Mhzです。 環境やコンパイラによって型のサイズや呼び方も変わるのでしょうか? VisualBasic6用のDLLをVCで作成した記憶があるのですが、そのときは VB6のInteger型が2バイトだったので C(Ver7.0?????)側も2バイトだったと思います。 今VB6のInteger型にあわせる場合はC側ではshortでないとおかしくなるのでしょうか? 私はブランクがあり、そのあたりの事情がよくわかっていません。 あるサイトのページを見ると intが2バイトで、 long intは同じ4バイトで long long intという型もありました。VC6++では long long intは無いようです。 http://seclan.dll.jp/c99d/c99d05.htm VC2005++やGCCでは8バイトの型はあるのでしょうか?
- ベストアンサー
- C・C++・C#
- 誤った型の組み合わせとは?
C言語初心者です。「FILEとintは誤った型の組み合わせです」と出てしまうのですが、その原因として考えられることにはどんなことがありますか?
- ベストアンサー
- C・C++・C#
- C言語で整数を文字列へ型変換
C言語で整数を文字列へ型変換 int result[11]; const char *tmp; resultの中の11個の数字を 1,2,3,4,5,6,7,8,9,10,11 のような文字列にして、tmpへ代入したんですが、やり方が分かりません。 Cの初心者ですので、教えていただきたいです。
- ベストアンサー
- C・C++・C#
- C言語の型による処理速度の違い
short int型よりint型。float型よりdouble型の方が 扱えるサイズは広いにも関わらず処理速度が速いと 聞いたのですが、それは本当でしょうか? もしそうならなぜそうなるのでしょう? (一度BCCでfloatとdoubleの処理速度を計ったらfloatの 方が少し早かったですが・・) 高速なプログラムを書く必要の出たときのために型に よる処理速度を教えてください。
- ベストアンサー
- C・C++・C#
- C++言語のポインタについて
現在、C++言語を学習しているのですが、 ポインタを使わない、 int main() { Human human; human.Introduction(); } と、ポインタを使った、 int main() { Human *p; p = new Human; p->Introduction(); delete p; } があります。どちらも同じ動作をしますが、ポインタを使ったものがよく使われているのは、 メモリの節約?動作速度?のためなのでしょうか? なぜ使われるのか教えてください。
- ベストアンサー
- C・C++・C#
お礼
非常に参考になりました。 ありがとうございます!!