是否可以打印结构名称?
说我有一个结构:
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.
你可以尝试这样的东西(它会打印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