c - 在 C 中打印结构体的名称

标签 c struct printf

是否可以打印结构名称?

假设我有一个结构:

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

someName_t test;

printf("%" PRIu16 "\n", test;
printf("%" PRIu16 "\n", test.value);

打印test.value就可以了。打印测试给了我警告.. 这是打印结构名称的正确方法吗?在 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);
}

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

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

关于c - 在 C 中打印结构体的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23780942/

相关文章:

c - Ubuntu 上的多播

java - 使用JNA将 native C函数映射到Java接口(interface)时出现指针问题

c++ - 为什么C++中的成员类要先初始化?

C 动态 printf double,没有精度损失,也没有尾随零

c - 使用 printf() 在 C 中打印 shell 命令行

将 `%*s` 与 `printf` 一起使用时出现编译器警告

c - 方括号在 C 中如何工作?

Java 编译器目标代码(字节代码?)

c++ - 为没有的库类编写构造函数

C - 使用 malloc 为结构赋值不起作用