是否有可能存储在一个变量C数据类型?是否可以将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循环体,一条线路:
printf(format, ((type) expected)[i]);