将结构转换为字符

标签 c struct char

我有一个问题,我需要将结构变量的名称转换为 char .例如:

struct CARINFO a;

当我的函数接受参数 CARINFO a 时, 我想同时使用 a"a"在函数中。

有人能帮忙吗?

最佳答案

您可以使用宏将指向结构的指针及其名称传递给实际函数。

struct bar {
    // blah
};

void actual_foo(struct bar *b, char *bname) {
    // whatever
}

#define foo(bar) actual_foo(&(bar), #bar)

int main() {
    struct bar b;
    foo(b);
}

关于将结构转换为字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7413398/

相关文章:

c - 错误 : cannot convert 'char**' to 'char*' in initialization for strings

c - 使用 C 在 win32 中运行时 move 按钮的 x 位置

c - C 中的结构和函数

c - 关于 C typedef struct

c++ - 为什么 C 字 rune 字是 int 而不是 char?

c++ - 为什么这个字符串被神秘地修改了?

c - macOS 和 Linux 下 qsort() 结果存在无法解释的差异

c - 读取 .csv 文件的一些代码崩溃了

c - 搜索和编辑功能没有复制粘贴?

c - 我的链接列表中的打印功能不断出现错误,我不知道这些错误告诉我什么