なぜ私はint型を使うことができるのかというと、このsize_t
が使われているのだろうかと思っていました。そのsize_t
はsizeof
オペレータの戻り値の型です。どういう意味ですか? sizeof(int)
を使用してint
型の変数にその戻り値を格納する場合と同様に、それも機能します。size_t
型の変数に格納する必要はありません。誰かがsize_t型を例として使用する理由を誰でも説明できますか?
答えて
size_t
は可能な限り最大サイズを表すことが保証されていますが、int
は基本的な考え方を明確に理解したいと思っています。つまり、size_t
はより移植性があります。
たとえば、int
には最大255まで格納できますが、5000バイトの配列を割り当てることができますか?明らかにこれはうまくいかないでしょうが、size_t
となります。
技術的に 'int'は少なくとも16ビットでなければなりません少なくとも範囲[-32767..32767]に及ぶ必要があります。 (なぜ-32768ではないのですか?Univacの古いマシンでCを使いたい人のために、1の補数システムとサイン・アンド・マグニチュードシステムに対応するためです。もちろん、これらは18ビットと36ビットの整数を持ち、 char'。) – torek
@torek何らかの理由で私はintがC言語ではなく> 16でなければならないという印象を受けています。しかし、標準をチェックしていない。 – Pubby
@Pubby:C++はCから継承しています。1.1 p2 C++はISO/IEC 9899:1999に記述されているCプログラミング言語に基づいた汎用プログラミング言語です
–
最も単純な例はかなり日付である:RAMの64 Kと古い16 bit- int
システムに、int
の値は、-32768から+32767までのどこかであってもよいが、後:
char buf[40960];
バッファbuf
が40キロバイトを占めるため、sizeof buf
は大きすぎてint
に収まらず、unsigned int
が必要です。あなたは32ビットint
を使用しますが(32ビットint
「I32LP64」のモデルに呼ばれているものの場合のように、プログラムは一度に4 GBを超えるRAMをアクセスすることを許可する場合
同じことが、64今日起こることができます-bit long
とポインタ)。ここではタイプsize_t
はunsigned long
と同じ範囲になります。
これは実装が定義されていますが、size_t
はしばしば64ビットであり、int
はまだILP64 or SILP64モデルでない限り、まだ32ビットです。
あなたが使用しているアーキテクチャ(16ビット、32ビットまたは64ビット)によって、intは異なるサイズになることがあります。
あなたは私がuint16_tかのuint32_tを使用する特定のサイズが必要な場合は....あなたはより多くの情報あなたがほとんど同じの符号なし整数にポインタをキャストするためsize_tの使用
What does the C++ standard state the size of int, long type to be?
このスレッドをチェックアウトすることができますポインタが整数であるかのように計算を実行します。そうでなければ、コンパイル時には阻止されます。このようなコードは、さまざまなポインタサイズのコンテキストで正しくコンパイルおよび構築することを意図しています。 32ビットモデルと64ビットモデル
- 1. 誰でもリクエストリプライブローカのzeromqの例を説明できますか?
- 2. 誰もstring.compare(_:options:range:locale :)を例文で説明できますか?
- 3. 誰かが私のプログラムがクラッシュする理由を説明できますか?
- 4. 誰でもWrite-AheadでNO-FORCEを使用する理由を説明できますか?
- 5. 誰でもこのスクリプトを外部リソースとしてアップロードできない理由を説明できますか?
- 6. shelllcodingでNO-OPスライドが使われている理由を誰でも説明できますか?
- 7. void * sum_thread(void * data)プロトタイプを使用する必要がある理由を誰かが説明できますか?
- 8. 誰かがMVCが3層アーキテクチャよりも優れている理由を説明できますか?
- 9. 誰でもこの現象がWindowsフォームで起こっている理由を説明できますか?
- 10. 誰もが関数の誤解を説明できますか?
- 11. 誰もがこのプログラムを説明できますか?
- 12. 誰かがこのジェネリック型のプリミティブ型の使用をJavaで説明することはできますか?
- 13. ideoneとのランタイムエラー、誰でも説明できますか?
- 14. 誰もiReportについてJavaで説明できますか?
- 15. パターンバインドをしましょう、誰かが例を説明できますか?
- 16. 誰でもCodeSmith SchemaExplorer.ViewSchemaコンストラクタのパラメータを説明できますか?
- 17. 誰でもSVGポリゴンポイントを説明できますか?
- 18. 誰でも私のコードを説明できますか?
- 19. 誰でもこのコードを説明できますか?
- 20. 誰でもApacheサーバーの構造を説明できますか?
- 21. 誰でもCプログラムの出力を説明できますか?
- 22. C誰でもこの構文を説明できますか?
- 23. 誰でも下記のコードを説明できますか?
- 24. 誰かがTYPE_INPUT_METHOD_DIALOGの使い方を説明できますか?
- 25. 次のコードの出力内容とその理由は何ですか?誰でも説明できますか?
- 26. 誰もDesireCapabilitiesクラスの使用をSelenium Webdriverで例を使って説明できますか?
- 27. 誰でもConcurrentLinkedListの使用方法を例を使って説明できますか?
- 28. 誰もこのプログラムのタイププロモーションを説明でき、出力が同じ理由
- 29. 誰かが説明することができます
- 30. 誰もこの文脈自由文法を私に説明できますか?
intを使用して、2147483647をintに格納するのと同じ方法で、sizeofの戻り値を格納することができます。実装固有のサイズが正しく一致するだけです。 – Lalaland
この質問もご覧ください:http://stackoverflow.com/questions/918787/whats-sizeofsize-t-on-32-bit-vs-the-various-64bit-data-models – ChrisWue
誰かがsize_tが同じサイズのプロセッサが登録されていますか? – arthurprs