C++11 には 4 バイトの char32_t 型があることを知っています。C で同様のものを実装できるかどうか疑問に思っています。私が書いているプログラムでは、すべての char 配列を 4 バイトの倍数にする必要があります。
2 に答える
1
このデータをどのように扱う予定ですか? 32 ビット変数内で 1 バイトのみを使用しますか、それとも実際の 32 ビット データを格納しますか?
簡単な解決策の 1 つは、後で変更できるように独自の抽象データ型を作成することです。
#include <stdint.h>
typedef int32_t mChar;
mChar myChar32Array[100]; // Allocates 100x32-bit values
ただし、関連するデータ型をいじることには大きな落とし穴があります。多くのライブラリとコード スニペットは、テキストを操作するときに aが achar
であると想定しています。文字列操作関数を使用する予定があり、それらが複数のシステムで機能することを期待している場合は、常に文字列を の配列として宣言し、またはとして宣言することはありません。使用する必要があるのは、8 ビットのバイナリ データを直接操作していて、注意しないとファンキーな値が得られる符号拡張などの予期しない奇妙さに対処する必要がない場合だけです。char
char
char
signed char
unsigned char
unsigned char
于 2015-02-13T19:19:04.420 に答える