2

size_tCのサイズを変更できますか?

4

3 に答える 3

8

いいえ、しかし、なぜあなたはそれをしたいのですか?

于 2009-11-07T01:50:50.643 に答える
4

size_tマクロではありません。これはtypedef、適切な符号なし整数型用です。

size_t<stddef.h>(およびその他のヘッダー)で定義されます。

おそらくそうであり、それを変更することさえ考えるべきではtypedef unsigned long long size_t;ありません。標準ライブラリは、標準ライブラリで定義されているとおりに使用します。標準ライブラリを変更できないため、変更すると、プログラムが size_t に標準ライブラリとは異なるサイズを使用するため、あらゆる種類のエラーが発生します。malloc()strncpy()snprintf()、 ...を呼び出すことはできなくなりました。

于 2009-11-07T02:20:32.970 に答える
1

Linux または NetBSD をフォークする場合は、「はい」

マクロを再定義することはできますが、これはおそらく typedef です。

環境を定義している場合は、size_t好きなように指定するのが完全に合理的です。次に、準拠コードが期待するすべての C99 標準関数を担当しますsize_t

したがって、それはあなたの状況によって異なります。既存のプラットフォーム用のアプリケーションを開発している場合、答えはノーです。

しかし、1 つ以上のコンパイラーを使用して独自の環境を定義している場合、答えは「はい」ですが、作業が必要になります。新しいtypedefsize_tを使用して残りのコードでコンパイルできるAPI 要素を持つすべてのライブラリ ルーチンの実装が必要になります。size_tしたがって、おそらく組み込みシステム用に NetBSD または Linux を fork する場合は、それを選択してください。そうでなければ、「努力する価値がない」と感じるかもしれません。

于 2009-11-07T04:01:42.937 に答える