开发手册 欢迎您!
软件开发者资料库

C - typedef

C中的typedef - 从简单和简单的步骤学习C编程,从基本概念到高级概念,包括C概述,语言基础知识,环境设置,程序结构,基本语法,文字,数据类型,变量,常量,存储类,操作符,决策,函数,范围规则,循环,数组,指针,字符串,结构,联合,位字段,Typedef,输入和输出,头文件,类型转换,错误处理,递归,变量参数,内存管理,预处理器,指令,命令行参数等

C编程语言提供了一个名为 typedef 的关键字,您可以使用该关键字为类型指定新名称.以下是为单字节数字定义术语 BYTE 的示例;

  typedef unsigned char BYTE;

在此类型定义之后,标识符BYTE可用作 unsigned char类型的缩写,例如..

  BYTE b1,b2;

按照惯例,大写字母用于这些定义,以提醒用户类型名称实际上是符号缩写,但您可以使用小写,如下所示 :

  typedef unsigned char byte;

您也可以使用 typedef 为用户定义的数据类型命名.例如,您可以使用带结构的typedef来定义新的数据类型,然后使用该数据类型直接定义结构变量,如下所示;

#include #include  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 ProgrammingBook  author : Nuha AliBook  subject : C Programming TutorialBook  book_id : 6495407

typedef vs #define

#define 是一个C指令,它也用于定义各种数据的别名类似于 typedef 的类型但具有以下差异;

  • typedef 仅限于为类型提供符号名称,其中 #define 也可用于定义值的别名,q.,您可以将1定义为ONE等.

  • typedef 解释由编译器执行,而 #define 语句由预处理器处理.

以下示例显示如何在程序中使用#define :

#include  #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 : 1Value of FALSE : 0