gpt4 book ai didi

c++ - 2个类似typedef定义的差异

转载 作者:太空宇宙 更新时间:2023-11-04 08:56:30 25 4
gpt4 key购买 nike

你可以这样定义一个点结构:

typedef struct
{
int x, y;
} Point;

还有这种方式:

typedef struct Point
{
int x, y;
};

有什么区别?

最佳答案

考虑下面给出的 C 代码,

typedef struct
{
int x, y;
} Point;

int main()
{
Point a;
a.x=111;
a.y=222;
printf("\n%d %d\n",a.x,a.y);
}

上面的代码将在没有任何错误或警告的情况下执行,而下面的 C 代码会给你一个错误 (error: 'Point' undeclared) 和一个警告 ( 警告:空声明中无用的存储类说明符)。

typedef struct Point
{
int x, y;
};

int main()
{
Point a;
a.x=111;
a.y=222;
printf("\n%d %d\n",a.x,a.y);
}

为了更正错误,您声明了结构变量a,如下所示,

 int main()
{
struct Point a;
a.x=111;
a.y=222;
printf("\n%d %d\n",a.x,a.y);
}

关于c++ - 2个类似typedef定义的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16722077/

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