25

Objective-C (特に iOS) で使用するものに違いはありますか? C とその型からの継承と、iOS のベースとなった Mac OS からの型の継承によるものだと思いますが、どちらを使用すればよいかわかりません。

unsigned charから...ええと..コンパイラ?

uint8_tstdint.h から

UInt8MacTypes.h から

ByteMacTypes.h から

Bytefzconf.h から

さまざまな定義が移植性の理由であり、リテラルを使用することunsigned charは将来の考えとして適切ではないことを認識しています (サイズが変更される可能性があり、Windows API のようになる可能性があります)。自分の用途に最適なものを見つける方法についてアドバイスをお願いします。または、私がばかげているだけなら、良い舌打ち...

EDIT:もう少し情報を得るために、常に1バイトになるものが必要な場合は、uint8_tを使用する必要があります(そのような名前で変更されるようには見えません)?UInt8 も変わらないと思いたいのですが、UInt32 の定義はプロセッサが 64 ビットであるかどうかによって異なることがわかります。

さらに編集: バイトと言うときは、具体的には 8 ビットが必要であることを意味します。ディスクストレージのピクセル圧縮操作 (32 ビット -> 8 ビット) を行っています。

4

2 に答える 2

11

まったく無関心です。どちらを使用しても、最終的にはunsigned char. ただし、見栄えを良くしたい場合は、uint8_tfromを使用することをお勧めします<stdint.h>

どちらもアーキテクチャによって変わりません。charC標準では常に1バイトであり、実装でUInt8が突然16ビット長になった場合、ユーザーの観点からはサポートできません。

(ただし、char8 ビット幅である必要があるというわけではありません。型の名前が 8 ビット長であることを示唆している場合にのみ、適切な実装は実際にそのように型定義します。ちなみに、1 バイト (これcharは) 多くの場合、8 ビット単位、つまりオクテットです。)

于 2012-06-08T09:15:24.383 に答える