能否在C中键入现有的用户定义类型?
假设我想定义两个结构,第一个有一个类型,另一个我想和第一个类型相同。这在C99中可能吗 例如:能否在C中键入现有的用户定义类型?,c,types,C,Types,假设我想定义两个结构,第一个有一个类型,另一个我想和第一个类型相同。这在C99中可能吗 例如: typedef struct { fieldA; fieldB; } typeA; struct B { fieldA fieldB }; typedef B A 如果不是typedef,是否有其他关键字/方法来执行此操作 编辑:从到目前为止的反馈来看,我似乎没有尽可能地清楚(我非常感谢!) 我的特定场景是键入alias另一个结构所需的typedef结构定义。当然
typedef struct {
fieldA;
fieldB;
} typeA;
struct B {
fieldA
fieldB
};
typedef B A代码>
如果不是typedef,是否有其他关键字/方法来执行此操作
编辑:从到目前为止的反馈来看,我似乎没有尽可能地清楚(我非常感谢!)
我的特定场景是键入alias另一个结构所需的typedef结构定义。当然可以!就像:
#include <stdio.h>
typedef int value_t;
typedef value_t data_t;
int main()
{
data_t i = 1;
printf("%d\n", i);
return 0;
}
#包括
typedef int value_t;
类型定义值数据;
int main()
{
数据i=1;
printf(“%d\n”,i);
返回0;
}
您可以typedef
任意次数。当然可以!就像:
#include <stdio.h>
typedef int value_t;
typedef value_t data_t;
int main()
{
data_t i = 1;
printf("%d\n", i);
return 0;
}
#包括
typedef int value_t;
类型定义值数据;
int main()
{
数据i=1;
printf(“%d\n”,i);
返回0;
}
您可以typedef
任意次数。您不需要额外的结构。只需typedef typeA B代码>应该按你的要求去做(我认为)。我很困惑。您的示例代码似乎打算声明两种结构类型(但语法不正确)。它不声明任何具有这些类型的对象。你只是在问如何为结构类型编写typedef吗?一旦你声明了一个结构类型,无论你是否定义了它,你都可以声明任意多个该类型的对象代码>在您的示例中没有类型B
,因此此类型定义没有意义。您不需要额外的结构。只需typedef typeA B代码>应该按你的要求去做(我认为)。我很困惑。您的示例代码似乎打算声明两种结构类型(但语法不正确)。它不声明任何具有这些类型的对象。你只是在问如何为结构类型编写typedef吗?一旦你声明了一个结构类型,无论你是否定义了它,你都可以声明任意多个该类型的对象
在您的示例中没有typeB
,因此这个typedef没有意义。我不确定这是否真的回答了这个问题,因为我不清楚OP到底想问什么。然而,由于这个问题在某种程度上是关于结构的,如果它对typedefs使用结构类型而不是int
,那么这可能是一个更好的答案。对不起,我误解了你的问题。如果您想要使用相同的名称进行多个操作,则无法执行此操作,这将引发冲突类型错误。但是,您可以使用#define
和#unde
来多次定义。我不确定这是否真的回答了这个问题,因为我不清楚OP到底想问什么。然而,由于这个问题在某种程度上是关于结构的,如果它对typedefs使用结构类型而不是int
,那么这可能是一个更好的答案。对不起,我误解了你的问题。如果您想要使用相同的名称进行多个操作,则无法执行此操作,这将引发冲突类型错误。但是,您可以使用#define
和#unde
来定义多次。