首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >typedef语法说明

typedef语法说明
EN

Stack Overflow用户
提问于 2019-01-11 20:08:10
回答 2查看 56关注 0票数 2

我对下面的声明有一点困惑--你能帮我澄清一下吗?

代码语言:javascript
复制
typedef struct {
  int a;
  int b;
} example;

还有这个

代码语言:javascript
复制
struct something {
  int a;
  int b;
} ob;

我甚至不确定下面这句话是什么意思?

代码语言:javascript
复制
typedef struct foo {
  int a;
  int b;
} bar;
EN

回答 2

Stack Overflow用户

发布于 2019-01-11 20:11:52

代码语言:javascript
复制
typedef struct {
  int a;
  int b;
} example;

它定义了一个未命名的结构类型,并引入example作为该结构类型的类型别名。因此,您只能将该结构类型称为“示例”。

代码语言:javascript
复制
struct something {
  int a;
  int b;
} ob;

它定义了一个结构类型something,还声明了一个该类型的对象ob。只能将结构类型称为struct something

代码语言:javascript
复制
typedef struct foo {
  int a;
  int b;
} bar;

它定义了一个名为foo的结构类型,并引入bar作为该结构类型的类型别名。您可以将该结构类型称为struct foobar

票数 5
EN

Stack Overflow用户

发布于 2019-01-11 20:12:15

使用

代码语言:javascript
复制
typedef struct {
  int a;
  int b;
} example;

您定义了一个未命名的结构,但为该结构定义了一个类型别名example。这意味着您只能使用类型“example”创建结构的实例,例如

代码语言:javascript
复制
example my_example_structure;

使用

代码语言:javascript
复制
struct something {
  int a;
  int b;
} ob;

您定义了一个名为something的结构和一个名为ob的结构的实例(变量)。您可以使用struct something创建结构的新变量:

代码语言:javascript
复制
struct something my_second_ob;

变量ob可以像该结构的任何其他实例一样使用:

代码语言:javascript
复制
printf("b = %d\n", ob.b);

最后,使用

代码语言:javascript
复制
typedef struct foo {
  int a;
  int b;
} bar;

您定义了一个名为foo的结构,因此您可以使用例如struct foo来定义变量。您还可以定义一个类型别名bar,也可以使用它。举个例子

代码语言:javascript
复制
struct foo my_first_foo;
bar my_second_foo;

typedef的一般语法为

代码语言:javascript
复制
typedef <actual type> <alias name>;

在示例的最后一个例子中,<actual type>

代码语言:javascript
复制
struct foo {
  int a;
  int b;
}

<alias namebar

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54146269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档