C语言准备知识:typedef-和-typedef-struct
typedef typedef existing new; typedef 的功能是建立新的数据类型名,比如: typedef int Length; // 数据类型 typedef char *String; // 字符指针 typedef struct tnode *Treeptr; // 指针 typedef int (*PFI) (char *, char *); // 指向函
目录6 个章节
typedef
typedef existing new;
typedef 的功能是建立新的数据类型名,比如:
typedef int Length; // 数据类型
typedef char *String; // 字符指针
typedef struct tnode *Treeptr; // 指针
typedef int (*PFI) (char *, char *); // 指向函数的指针
Length l = 120;
printf("%d \n", l);
typedef 声明并没有创建一个新类型,它只是为某个已存在的类型增加了一个新的名称而已。
使用 typedef 的两个关键好处是:
- 可以使程序参数化,提高程序的移植性。
- 可以为程序提供更好的说明性,增加可读性。
struct
struct 用于定义一个包含多个成员的新的数据类型。分别有以下 4 种定义方式:
方式 1:不指定类型名,直接声明结构体变量(不推荐使用)
struct {
int age;
} student;
student.age = 18;
printf("%d \n", student.age);
方式 2:先定义类型名,再声明结构体变量
特点:每次都需要使用 struct 类型名 去声明变量。
struct Student {
char name;
int age;
};
struct Student student1;
student1.age = 20;
方式 3:定义类型名并声明结构体变量
struct HeadTeacher {
int age;
} h1;
h1.age = 50;
struct HeadTeacher h2;
h2.age = 70;
printf("head teacher1 age = %d \n", h1.age);
printf("head teacher2 age = %d \n", h2.age);
方式 4:定义类型名并起别名 (推荐)
typedef struct {
int age;
} Teacher;
Teacher t;
t.age = 30;
printf("teacher age = %d \n", t.age);
_EOF_
C语言准备知识:typedef-和-typedef-struct
- 本文作者:
- 程序设计实验室
- 版权声明:
- 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
相关文章
主机托架开箱,桌面空间倍增,不再杂乱
这托架不就是块木板加轮子?装起来费劲,还剩一堆螺丝。挤不出多少桌面空间,理线更乱。这性价比,也就勉强及格吧。
2025-10-28 · 其他 · 约 1 分钟
记一次AndroidStudio在Linux环境上的奇葩错误,Argument-for-@NotNull-parameter-'messag
错误信息 Argument for @NotNull parameter 'message' of com/android/tools/idea/gradle/project/sync/GradleSyncState.syncFailed must not be null java.lang.IllegalArgumentException: Argument for @NotNull param
2022-05-27 · Android开发 · 约 1 分钟
解决Mac刘海屏菜单栏图标显示不全,两款工具实测(含开源免费方案)
本文分享了MacBook Air M4用户遇到的菜单栏图标过多导致显示不全的问题,并提供了两种解决方案:收费软件Bartender 4(15美元)和开源免费工具Ice。作者详细介绍了Ice的安装方法(通过brew或手动下载)及使用体验,展示了其灵活的图标折叠、扩展菜单和自定义设置功能,认为其效果与收费版相当。文章旨在帮助用户优化MacOS菜单栏空间管理。
2025-08-26 · Mac · 约 1 分钟
Vue2.x项目整合ExceptionLess监控
前言 一直以来我们都是用Sentry做项目监控,不过前段时间我们的Sentry坏掉了~~(我搞坏的)~~ 但监控又是很有必要的,在sentry修好之前,我想先寻找一个临时的替代方案,同时发现网上关于ExceptionLess的资料少得可怜,ExceptionLess官方的文档也不是很完善,翻了好久文档和源码,于是有了本文…… 关于ExceptionLess 写.NetCore的同学应该不会陌生,这
2022-03-23 · Web前端 · 约 1 分钟
讨论
共 0 条加载评论中…