C++ typedef 定义别名

C++ 中可以使用 typedef 关键字为一个类型定义一个别名

比如下面的结构体

struct Book
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} book;

我们可以使用 typedef 为它取个别名,比如 ITBooks

typedef Book ITBook;

或者直接在定义的时候就取一个别名

typedef struct
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} ITBook;

然后我们就可以使用 ITBook 来定义 struct Book 类型的变量

/**
 * file: main.cpp
 * author: 简单教程(www.twle.cn)
 *
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

#include <iostream>
#include <cstring>

// 声明一个结构体类型 Books 
struct Book
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
};

typedef Book ITBook;

int main( )
{
   ITBook book1;
   ITBook book2;

   // book1 详述
   strcpy( book1.title, "C++ 基础教程");
   strcpy( book1.author, "简单教程"); 
   strcpy( book1.subject, "后端技术");
   book1.book_id = 11010;

   // book2 详述
   strcpy( book2.title, "HTML 基础教程");
   strcpy( book2.author, "简单教程");
   strcpy( book2.subject, "前端技术");
   book2.book_id = 11011;

   // 输出 book1 信息
   std::cout << "第一本书标题 : " << book1.title   << std::endl;
   std::cout << "第一本书作者 : " << book1.author  << std::endl;
   std::cout << "第一本书类目 : " << book1.subject << std::endl;
   std::cout << "第一本书 ID : " << book1.book_id << std::endl;

   // 输出 book2 信息
   std::cout << "第二本书标题 : " << book2.title   << std::endl;
   std::cout << "第二本书作者 : " << book2.author  << std::endl;
   std::cout << "第二本书类目 : " << book2.subject << std::endl;
   std::cout << "第二本书 ID : " << book2.book_id << std::endl;

   return 0;
}

编译运行上面的代码,输出结果如下

第一本书标题 : C++ 基础教程
第一本书作者 : 简单教程
第一本书类目 : 后端技术
第一本书 ID : 11010
第二本书标题 : HTML 基础教程
第二本书作者 : 简单教程
第二本书类目 : 前端技术
第二本书 ID : 11011

还可以使用 typedef 给非结构类型定义一个别名

typedef int *pint32;

pint32 x, y, z;

x, y 和 z 都是指向长整型 int 的指针

C++ 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.