Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
能否在C中键入现有的用户定义类型?_C_Types - Fatal编程技术网

能否在C中键入现有的用户定义类型?

能否在C中键入现有的用户定义类型?,c,types,C,Types,假设我想定义两个结构,第一个有一个类型,另一个我想和第一个类型相同。这在C99中可能吗 例如: typedef struct { fieldA; fieldB; } typeA; struct B { fieldA fieldB }; typedef B A 如果不是typedef,是否有其他关键字/方法来执行此操作 编辑:从到目前为止的反馈来看,我似乎没有尽可能地清楚(我非常感谢!) 我的特定场景是键入alias另一个结构所需的typedef结构定义。当然

假设我想定义两个结构,第一个有一个类型,另一个我想和第一个类型相同。这在C99中可能吗

例如:

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吗?一旦你声明了一个结构类型,无论你是否定义了它,你都可以声明任意多个该类型的对象
在您的示例中没有type
B
,因此这个typedef没有意义。我不确定这是否真的回答了这个问题,因为我不清楚OP到底想问什么。然而,由于这个问题在某种程度上是关于结构的,如果它对typedefs使用结构类型而不是
int
,那么这可能是一个更好的答案。对不起,我误解了你的问题。如果您想要使用相同的名称进行多个操作,则无法执行此操作,这将引发冲突类型错误。但是,您可以使用
#define
#unde
来多次定义。我不确定这是否真的回答了这个问题,因为我不清楚OP到底想问什么。然而,由于这个问题在某种程度上是关于结构的,如果它对typedefs使用结构类型而不是
int
,那么这可能是一个更好的答案。对不起,我误解了你的问题。如果您想要使用相同的名称进行多个操作,则无法执行此操作,这将引发冲突类型错误。但是,您可以使用
#define
#unde
来定义多次。