size_t
Cのサイズを変更できますか?
3 に答える
いいえ、しかし、なぜあなたはそれをしたいのですか?
size_t
マクロではありません。これはtypedef
、適切な符号なし整数型用です。
size_t
<stddef.h>
(およびその他のヘッダー)で定義されます。
おそらくそうであり、それを変更することさえ考えるべきではtypedef unsigned long long size_t;
ありません。標準ライブラリは、標準ライブラリで定義されているとおりに使用します。標準ライブラリを変更できないため、変更すると、プログラムが size_t に標準ライブラリとは異なるサイズを使用するため、あらゆる種類のエラーが発生します。malloc()
、strncpy()
、snprintf()
、 ...を呼び出すことはできなくなりました。
Linux または NetBSD をフォークする場合は、「はい」
マクロを再定義することはできますが、これはおそらく typedef です。
環境を定義している場合は、size_t
好きなように指定するのが完全に合理的です。次に、準拠コードが期待するすべての C99 標準関数を担当しますsize_t
。
したがって、それはあなたの状況によって異なります。既存のプラットフォーム用のアプリケーションを開発している場合、答えはノーです。
しかし、1 つ以上のコンパイラーを使用して独自の環境を定義している場合、答えは「はい」ですが、作業が必要になります。新しいtypedefsize_t
を使用して残りのコードでコンパイルできるAPI 要素を持つすべてのライブラリ ルーチンの実装が必要になります。size_t
したがって、おそらく組み込みシステム用に NetBSD または Linux を fork する場合は、それを選択してください。そうでなければ、「努力する価値がない」と感じるかもしれません。