C データ型を変数に格納することは可能ですか?
このようなもの:
void* type = (byte*);
これは、テスト ケースを作成し、特定のパラメーターに応じて、printf で使用する特定のデータ型を使用してバイト配列を出力しようとしたシナリオです。
void print_byteArray(const void* expected, size_t size,
bool asChars, bool asWCharT) {
int iterations;
char* format;
if (asChars) {
iterations = (size / (sizeof (char)));
format = "%c";
} else if (asWCharT) {
iterations = (size / (sizeof (wchar_t)));
format = "%lc";
} else {
iterations = (size / (sizeof (byte)));
format = "%x";
}
int i;
for (i = 0; i < iterations; i++) {
if (asChars) {
printf(format, ((char*) expected)[i]);
} else if (asWCharT) {
printf(format, ((wchar_t*) expected)[i]);
} else {
printf(format, ((byte*) expected)[i]);
}
}
fflush(stdout);
}
これは非効率なコードのように見えます。for ループ本体のサイズを 1 行に縮小できると思います。
printf(format, ((type) expected)[i]);