C 语言 Typedef 详解:自定义类型名简化代码
C 语言提供关键字 typedef,可为类型起新名字。例如为单字节数定义术语 BYTE:
typedef unsigned char BYTE;
此类型定义后,标识符 BYTE 可作为 unsigned char 类型的缩写,例如:
BYTE b1, b2;
惯例用大写字母提醒用户该类型名实为符号别名,但也可用小写:
typedef unsigned char byte;
可用 typedef 为用户定义数据类型命名。例如配合结构体定义新数据类型,直接用该类型定义结构体变量:
Live Demo
#include <stdio.h> #include <string.h> typedef struct Books { char title[50]; char author[50]; char subject[100]; int book_id; } Book; int main( ) { Book book; strcpy( book.title, "C Programming"); strcpy( book.author, "Nuha Ali"); strcpy( book.subject, "C Programming Tutorial"); book.book_id = 6495407; printf( "Book title : %s\n", book.title); printf( "Book author : %s\n", book.author); printf( "Book subject : %s\n", book.subject); printf( "Book book_id : %d\n", book.book_id); return 0; }
编译执行输出:
Book title : C Programming Book author : Nuha Ali Book subject : C Programming Tutorial Book book_id : 6495407
typedef 与 #define
#define 是 C 预处理指令,也用于定义数据类型别名,类似 typedef,但有区别:
- typedef 仅限于给类型起符号名,而 #define 可定义值别名,如定义 1 为 ONE 等。
- typedef 由编译器解释,而 #define 由预处理器处理。
下例展示 #define 用法:
Live Demo
#include <stdio.h> #define TRUE 1 #define FALSE 0 int main( ) { printf( "Value of TRUE : %d\n", TRUE); printf( "Value of FALSE : %d\n", FALSE); return 0; }
编译执行输出:
Value of TRUE : 1 Value of FALSE : 0
C语言
- 世界级制造与维护的精益机器:设备卓越实操指南
- ISA发布《控制系统安全评估与可靠性》第三版
- 新书《OEE入门指南》:掌握设备综合效率、可靠性与可维护性
- 2021程序员必读17本经典编程书单:从代码技艺到架构思维的进阶之路
- 书评:《数字化或死亡——IoT驱动转型蓝图》
- 颠覆性技术时代如何留住人性
- C# Hello World — 构建你的第一个C#应用程序
- C#关键字与标识符:规则、完整列表与最佳实践
- C 语言结构体详解:高效组织复杂数据
- C 语言 Typedef 详解:自定义类型名简化代码
- C++数据结构实战:结构体struct定义、访问、函数参数、指针与typedef别名
- C# 结构体完全指南:定义、特性、与类的区别及实战