首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

C++ 自定義類型別名:typedef 與 using

     編輯:C++ 入門

typedef 傳統語法

typedef existing_type new_type_name;
// 例子
typedef char C;
typedef unsigned int WORD;
typedef char* pChar;
typedef char field[50];

C, WORD, pChar, field 分別成為 char, unsigned int, char*, char[50] 的別名。

using 現代語法 (C++11)

using new_type_name = existing_type;
// 例子
using C = char;
using WORD = unsigned int;
using pChar = char*;
using field = char[50];

語義相同,但 using 更清晰(類似變量聲明),且支持模板別名:

template
using Vec = vector; // typedef 無法直接做到
Vec vi; // 等價於 vector

適用場景

  • 簡化複雜類型名:typedef std::map> MapVec;
  • 平台相關類型抽象:typedef int32_t Int32; 便於移植。
  • 函數指針簡化:using Callback = void(*)(int);
  • 模板元編程中定義類型特徵。

區別總結

現代 C++ 推薦優先使用 using,除非維護舊代碼庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
特性typedefusing
語法風格舊式(類似聲明變量)新式(別名在前,類型在後)
模板別名不支持支持 (template<T> using Alias = ...)
函數指針可讀性較差清晰
標準C++98C++11