Menu Close

C语言类型定义符 typedef

C语言不仅提供了丰富的数据类型,而且还允许由用户自己定义类型说明符,也就是说允许由用户为数据类型取“别名”。类型定义符 typedef 即可用来完成此功能。

例如,有整型量 a,b,其说明如下:

int a,b;

其中 int 是整型变量的类型说明符。int 的完整写法为 integer,为了增加程序的可读性,可把整型说明符用 typedef 定义为:

typedef int INTEGER

这以后就可用 INTEGER 来代替 int 作整型变量的类型说明了。
例如:

INTEGER a,b;

它等效于:

int a,b;

用 typedef 定义数组、指针、结构体等类型将带来很大的方便,不仅使程序书写简单而且使意义更为明确,因而增强了可读性。

例如:

typedef char NAME[20];

表示 NAME 是字符数组类型,数组长度为 20。然后可用 NAME 说明变量,如:

NAME a1,a2,s1,s2;

完全等效于:

char a1[20],a2[20],s1[20],s2[20]

又如:

typedef struct stu
{ 
    char name[20];
    int age;
    char sex;
} STU;

定义 STU 表示 stu 的结构类型,然后可用 STU 来说明结构变量:

STU body1,body2;
typedef 定义的一般形式为:
typedef 原类型名 新类型名

其中原类型名中含有定义部分,新类型名一般用大写表示,以便于区别。

有时也可用宏定义来代替 typedef 的功能,但是宏定义是由预处理完成的,而 typedef 则是在编译时完成的,后者更为灵活方便。

例1.typedef的应用

#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
READ  C语言条件编译
除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Leave the field below empty!

Posted in C语言教程

Related Posts