在C中打印结构的名称

-4 c printf struct

是否可以打印结构名称?

说我有一个结构:

typedef struct someName{
uint16_t  value;
uint16_t  field;
} someName_t;

someName_t test;

printf("%" PRIu16 "\n", test;
printf("%" PRIu16 "\n", test.value);
Run Code Online (Sandbox Code Playgroud)

打印test.value是oke.打印测试给了我警告..这是打印结构名称的正确方法,它甚至可以在C中使用吗?

首先PRIu16是我在stackoverflow上找到的,这是打印uint16_t的正确方法.

我想打印名称someName_t.

Bri*_*ian 6

你可以尝试这样的东西(它会打印test = 0):

#define DUMP(varname) fprintf(stderr, "%s = %x", #varname, varname);

typedef struct someName 
{
   int  value;
   int  field;
} someName_t;

someName_t test;

// pseudocode
int main()
{
   DUMP(test);
}
Run Code Online (Sandbox Code Playgroud)

在这里运行:http://www.compileonline.com/compile_c_online.php

资料来源:https://stackoverflow.com/a/1623148/2591612

  • +(ab)使用预处理器:) (3认同)