码迷,mamicode.com
首页 > 其他好文 > 详细

数据类型的别名

时间:2020-07-26 00:21:14      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:别名   最好   ext   run   fine   程序   typedef   bool   编译器   

  C/C++ 编程语言中,typedef 关键字用来为特定的数据类型取一个别名,或者将其称之为 “定义了一种新的数据类型”。无论如何,其最终的目的是为了使源代码更易于阅读和理解。它通常用于简化声明复杂的数据类型组成的结构 。

  比如,在 C 中没有 bool 类型,于是很可能出现一个程序员使用 int,一个程序员使用 short 的情况,会比较混乱。这时最好使用一个 typedef 来定义一个统一的 bool 类型:

  typedef char bool_t;

  _t 表示这些数据类型是通过 typedef 来定义的,而不是新的数据类型。也就是说,它们其实是我们已知的数据类型的别名。这样就便于代码的维护。

  另外,在涉及到跨平台时,不同的平台会有不同的字长,所以利用预编译和 typedef 可以方便的维护代码,例如:uint8_t、uint16_t 等。

  typedef signed char int8_t;

  typedef short int int16_t;

  创建 BYTE 作为无符号单字符类型的别名

  typedef unsigned char BYTE;

  // 使用自定义的数据类型 BYTE 来定义无符号单字符类型变量

  BYTE b1, b2;

  创建函数指针 PFI 的别名

  typedef int (*PFI)(char *, char *);

  也可以使用 typedef 来为自定义的数据类型取一个新的名字,例如:可以对结构体使用 typedef 来定义一个新的别名(数据类型),然后使用这个新的数据类型来直接定义结构变量:

  #include

  #include

  typedef struct BOOKS {

  char title[50];

  char author[50];

  char subject[100];

  int id;

  } MyBook;

  int main() {

  MyBook book1;

  strcpy(book1.title, "C");

  strcpy(book1.author, "Runoob");

  strcpy(book1.subject, "C");

  book1.id = 123;

  printf("Book‘s title: %s\nauthor: %s\nsubject: %s\nid: %d\n", book1.title, book1.author, book1.subject, book1.id);

  return 0;

  }

  关键字 typedef 和预处理器指令 #define 的区别

  C/C++ 编程语言中,typedef 关键字用来为特定的数据类型取一个别名,或者将其称之为 “定义了一种新的数据类型”。无论如何,其最终的目的是为了使源代码更易于阅读和理解。它通常用于简化声明复杂的数据类型组成的结构 。

  比如,在 C 中没有 bool 类型,于是很可能出现一个程序员使用 int,一个程序员使用 short 的情况,会比较混乱。这时最好使用一个 typedef 来定义一个统一的 bool 类型:

  typedef char bool_t;

  _t 表示这些数据类型是通过 typedef 来定义的,而不是新的数据类型。也就是说,它们其实是我们已知的数据类型的别名。这样就便于代码的维护。

  另外,在涉及到跨平台时,不同的平台会有不同的字长,所以利用预编译和 typedef 可以方便的维护代码,例如:uint8_t、uint16_t 等。

  typedef signed char int8_t;

  typedef short int int16_t;

  创建 BYTE 作为无符号单字符类型的别名

  typedef unsigned char BYTE;

  // 使用自定义的数据类型 BYTE 来定义无符号单字符类型变量

  BYTE b1, b2;

  创建函数指针 PFI 的别名

  typedef int (*PFI)(char *, char *);

  也可以使用 typedef 来为自定义的数据类型取一个新的名字,例如:可以对结构体使用 typedef 来定义一个新的别名(数据类型),然后使用这个新的数据类型来直接定义结构变量:

  #include

  #include

  typedef struct BOOKS {

  char title[50];

  char author[50];

  char subject[100];

  int id;

  } MyBook;

  int main() {

  MyBook book1;

  strcpy(book1.title, "C");

  strcpy(book1.author, "Runoob");

  strcpy(book1.subject, "C");

  book1.id = 123;

  printf("Book‘s title: %s\nauthor: %s\nsubject: %s\nid: %d\n", book1.title, book1.author, book1.subject, book1.id);

  return 0;

  }

  关键字 typedef 和预处理器指令 #define 的区别 郑州治疗胎记哪家好 http://www.zzzykdmlk.com/

  #define 是 C 的预处理器指令,也称之为 C 指令,用于为各种数据类型定义别名,与关键字 typedef 类似,但是它们有以下几点不同:

  typedef 仅限于自定义数据类型标识符的别名,#define 不仅可以为数据类型定义别名,也能为实际的数值定义别名。

  typedef 是由编译器处理的,#define 语句是由预处理器进行处理的。

  #include

  /* 自定义常量 */

  #define TRUE 1

  #define FALSE 0

  int main() {

  printf( "TRUE 的值: %d\n", TRUE);

  printf( "FALSE 的值: %d\n", FALSE);

  return 0;

  #define 是 C 的预处理器指令,也称之为 C 指令,用于为各种数据类型定义别名,与关键字 typedef 类似,但是它们有以下几点不同:

  typedef 仅限于自定义数据类型标识符的别名,#define 不仅可以为数据类型定义别名,也能为实际的数值定义别名。

  typedef 是由编译器处理的,#define 语句是由预处理器进行处理的。

  #include

  /* 自定义常量 */

  #define TRUE 1

  #define FALSE 0

  int main() {

  printf( "TRUE 的值: %d\n", TRUE);

  printf( "FALSE 的值: %d\n", FALSE);

  return 0;

数据类型的别名

标签:别名   最好   ext   run   fine   程序   typedef   bool   编译器   

原文地址:https://www.cnblogs.com/12man/p/13376530.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!