我正在尝试调试我正在编写的程序,它正在使用C中的libvirt库.
在程序的一部分我将返回以下结构:
struct virTypedParameter {
char field[VIR_TYPED_PARAM_FIELD_LENGTH];
int type;
union {
int i;
unsigned int ui;
long long int l;
unsigned long long int ul;
double d;
char b;
char *s;
} value;
}
Run Code Online (Sandbox Code Playgroud)
所以我有一个键,值和值类型.我希望能够通过将它们传递给函数来打印它们.
除了将类型抛入switch语句并重定向到正确的printf语句之外,还有更简单的方法吗?我已经这样做了,它导致在编译时弹出大量警告:
void printVirTypedParameter(virTypedParameter* param) {
printf("Param type: %d\n", param->type);
switch(param->type) {
case 1: //int
printf("%s : %d\n", param->field, param->value);
break;
case 2: //int unsigned
printf("%s : %u\n", param->field, param->value);
break;
case 3: //long long int
printf("%s : %ld\n", param->field, param->value);
break;
case 4: //long long …Run Code Online (Sandbox Code Playgroud)