まあ、私はいくつかのJavaやってる - 型マッピングが使用されているwerid Cの統合、およびthroughtのCライブラリ(それらのtheresの多くを;)):組み込み型のtypedef(または#define)の使用 - 賢明な理由はありますか?
#define CHAR char /* 8 bit signed int */
#define SHORT short /* 16 bit signed int */
#define INT int /* "natural" length signed int */
#define LONG long /* 32 bit signed int */
typedef unsigned char BYTE; /* 8 bit unsigned int */
typedef unsigned char UCHAR; /* 8 bit unsigned int */
typedef unsigned short USHORT; /* 16 bit unsigned int */
typedef unsigned int UINT; /* "natural" length unsigned int*/
それらを使用しない正当な理由があるの? char
はすぐに再定義されるようなものではありません。
:
- ライティングプラットフォーム/コンパイラポータブルなコードは(タイプのサイズはC/C++でunderspecifiedされる)
省スペースおよび組み込みシステム上の時間 - 短い配列の上にあなたがループの場合255ビット以上の8ビットマイクロプロセッサ書き込み:
for(uint8_t ii = 0; ii < len; ii++)
は、スピードアップが可能です。
uint16_tなどについては、大学でマイクロプロセッサーをプログラミングするときにのみ使用しましたが、スペース/メモリを節約するために明示的に使用しました。そのような255バイト未満の配列をループするとき(ほとんどすべてでした) uint8_t(マイクロプロセッサは8ビットのものでした)。 移植性のためではありません。 –
実際、彼らはその目的にも役立ちます。 –