gpt4 book ai didi

c - 结构体标签别名

转载 作者:行者123 更新时间:2023-11-30 15:32:32 25 4
gpt4 key购买 nike

有没有办法为结构体标记添加别名?例如,我有一个 struct foo 并希望将其别名为 struct bar。我尝试了 typedef struct foo struct bartypedef struct foo bar 等...但它当然不起作用,因为 foobar 不是类型名称,而是标签。

有没有一种方法可以在不为我的结构定义实际类型名称的情况下执行此操作(我想将它们保留为标签,因为我偏向于在它们前面加上 struct 前缀 - 请不要发生宗教 war 这个)。

我的猜测是标签必须是唯一的,因此不可能直接实现,但我奇怪的是无法在网上找到引用(不出所料,我找到的只是关于 typedef struct 含义以及何时/为何使用它的讨论,其中这又不是我要找的)。

最佳答案

您可以使用#define bar foo来实现您想要的。不知道它是否适合您,但它确实有效,如以下示例所示:

#include <stdio.h>

struct foo {
int a;
};

#define bar foo

int main( ) {

struct bar x;

x.a = 10;
printf( "%d", x.a );

putchar( 10 );
return 0;
}

我可以看出它有一个缺点,那就是现在您可以定义一个标识符名为 foo 的整数,但尝试使用名称 bar 来这样做 将再次生成一个标识符名为 foo 的变量,因为这就是 #define 的工作原理。

关于c - 结构体标签别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24219492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com