C语言学习笔记 - typedef

Typedef

声明与定义

C语言提供了typedef关键字,可以使用它为类型取一个新名字。

typeof unsigned char byte;
byte b1, b2;

也可以使用typedef为自定义数据类型取一个新名字。

#include 
#include 

typedef struct Students
{
   char  name[50];
   char  gender[10];
   int   age;
} Student;

int main( ) {
   Student student;     

   strcpy( student.name, "张三");
   strcpy( student.gender, "男"); 
   student.age = 15;

   printf( "Student name : %s\n", student.name);
   printf( "Student gender : %s\n", student.gender);
   printf( "Student age : %d\n", student.age);

   return 0;
}

typedef 与 #define 的区别

#define是C指令,用于为各种数据类型定义别名,与typedef类似。它们也有以下不同点:

  • typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。
  • typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名。例如:将1定义为ONE
  • #define可以使用其他类型说明符对宏类型名进行扩展,但对 typedef 所定义的类型名却不能这样做。
  • 在连续定义几个变量的时候,typedef 能够保证定义的所有变量均为同一类型,而 #define 则无法保证。

你可能感兴趣的:(C语言学习笔记 - typedef)