Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >C++为类型建⽴别名的⽅式

C++为类型建⽴别名的⽅式

原创
作者头像
Alan_1
发布于 2023-04-30 04:28:15
发布于 2023-04-30 04:28:15
3880
举报
文章被收录于专栏:Alan的blogAlan的blog
  1. 使⽤预处理器:

#define BYTE char

预处理器在编译程序时用char替换所有的BYTE;等价于使BYTE成为char的别名

  1. 使⽤C++(和C)的关键字typedef来创建别名:
  • 通用格式:
代码语言:txt
AI代码解释
复制
 typedef typeName aliasName;
  • 例如:typedef char byte;//使byte成为char的别名
  • 换句话说,如果要将aliasName作为某种类型的别名,可以声明aliasName,如同将 aliasName声明为这种类型的变量那样,然后在声明的前⾯加上关键字typedef。
  • 例如,要让byte_pointer成为char指针的别名,可将byte_pointer声明为char指针,然后在前⾯加上 typedef:
代码语言:txt
AI代码解释
复制
 typedef char* byte_pointer;
3.也可以使⽤#define,不过声明⼀系列变量时,这种⽅法不适⽤。
代码语言:c++
AI代码解释
复制
#define FLOAT_POINTER float*
FLOAT_POINTER pa,pb;
//预处理器将该声明转换为:
float* pa,pb;
  • typedef⽅法不会有这样的问题。它能够处理更复杂的类型别名,这使得与使⽤#define相 ⽐,使⽤typedef是⼀种更佳的选择—有时候,这也是唯⼀的选择。
  • 注意,typedef不会创建新类型,⽽只是为已有的类型建⽴⼀个新名称。如果将word作为 int的别名,则cout将把word类型的值视为int类型。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
告诉你所不知道的typedef
来源一:Using typedef to Curb Miscreant CodeTypedef 声明有助于创建平台无关类型,甚至能隐藏复杂和难以理解的语法。不管怎样,使用 typedef 能为代码带来意想不到的好处,通过本文你可以学习用 typedef 避免缺欠,从而使代码更健壮。typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性
ccf19881030
2019/04/23
9390
C++复习笔记——C++ 关键字
new new(新建)用于新建一个对象。new运算符总是返回一个指针。由 new 创建
莫斯
2020/09/10
1.3K0
嵌入式 C 语言(中)
volatile原意是“易变的”,在嵌入式环境中用volatile关键字声明的变量,在每次对其值进行引用的时候都会从原始地址取值。由于该值“易变”的特性所以,针对其的任何赋值或者获取值操作都会被执行(而不会被优化)。由于这个特性,所以该关键字在嵌入式编译环境中经常用来消除编译器的优化,可以分为以下三种情景:
韦东山
2022/05/05
1.4K0
嵌入式 C 语言(中)
#define和typedef的用法与区别及面试问题
在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:
bear_fish
2018/09/20
3.1K0
typedef用法
定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,  // 和一个字符变量; 以下则可行: typedef char* PCHAR; // 一般用大写 PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针 虽然:
狼啸风云
2020/07/23
9290
结构体定义 typedef struct 用法详解和用法小结
typedef可以声明新的类型名来代替已有的类型名,但却不能增加新的类型。   typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。   在编程中使用typedef目的一般有两个,一个是给变量提供一个易记且意义明确的新名字(类型有新别名,方便变量的定义),另一个是简化一些比较复杂的类型声明。
Twcat_tree
2022/11/30
1.4K0
c#任何类型的别名
在C#编程语言中,类型别名(也称为typedef)是一种为现有类型创建一个新的名称的机制。这使得代码更加清晰,并且可以轻松地替换底层类型,而不需要修改使用该类型的代码。类型别名在多种编程语言中都有出现,但在C#中,它们通过using关键字和alias上下文关键字来实现。
Michel_Rolle
2024/10/10
2.5K0
C++函数模板详解
经常有碰到函数模块的应用,很多书上也只是略有小讲一下,今天又狂碰到函数模块,无奈特地找来C++编程经典<>翻阅一遍,终于有所全面了解..... C++函数模块基础: 一. 问题: 强类型语言要求我们为
程序员互动联盟
2018/03/16
1K0
【编程基础】如何赢得C++面试
1.new、delete、malloc、free关系 delete会调用对象的析构函数,和new对应的是free,free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。 2.delete与delete []区别 delete只会调用一次析构函数,而
程序员互动联盟
2018/03/12
1.4K0
【编程基础】如何赢得C++面试
【专业技术】C++里面重要的几个关键字的用法
编者按: 这几个关键字非常重要,程序中经常见到他们的身影,但是确切意思有时候还需要多搜索下才能知道。笔者这里把它搬出来,也是希望大家引起重视,努力掌握它。 C++关键字:mutable、volatile、explicit以及__based mutable关键字 关键字mutable是C++中一个不常用的关键字,他只能用于类的非静态和非常量数据成员我们知道一个对象的状态由该对象的非静态数据成员决定,所以随着数据成员的改变,对像的状态也会随之发生变化! 如果一个类的成员函数被声明为const类型,表示该函数不会
程序员互动联盟
2018/03/14
8540
一句话帮你理解typedef的用法
在C语言中typedef用来给复杂声明定义别名非常的方便,不过有时候typedef在复杂声明中不好理解。本文关键的一句话帮你理解ytpedef的用法。
编程珠玑
2019/09/04
6950
C语言之预处理命令与用typedef命名已有类型
 预处理命令 主要是改进程序设计环境,以提高编程效率,不属于c语言本身的组成部分,不能直接对它们进行编译,必须在对 程序编译之前,先对程序中的这些特殊命令进行“预处理”。比如头文件。 有以下三类:宏定义,文件包含,条件编译。   宏定义(分为带参数与不带参数两种)  宏定义是用宏名代替一个字符串,也是简单的置换,不作正确性检查。 宏定义不是C语句,不必在行未加分号; #define命令出现在程序中函数的外面,宏名的有限范围为定义命令之后到本源文件结束。 可以用#undef命令终止宏定义的作用域。 对程序中
互联网金融打杂
2018/04/03
1.6K0
为什么很多人编程喜欢用typedef?
typedef 是 C 语言的一个关键字,用来给某个类型起个别名,也就是给C语言中已经存在的一个类型起一个新名字。大家在阅读代码的过程中,会经常见到 typedef 与结构体、联合体、枚举、函数指针声明结合使用。比如下面结构体类型的声明和使用:
杨源鑫
2020/05/21
2.6K0
C++基础知识
static 定义的静态局部变量分配在数据段上,普通的局部变量分配在栈上,会因为函数栈帧的释放而被释放掉。
代码的路
2022/08/23
1.4K0
C++基础知识
嵌入式软件工程师笔试面试指南-C/C++
哈喽,大家好。最近几天,我把去年秋招总结的笔试面试的一些内容,又进行了重新规划分类。详细分成了简历书写,面试技巧,面经总结,笔试面试八股文总结等四个部分。
嵌入式与Linux那些事
2021/04/15
1.7K0
嵌入式软件工程师笔试面试指南-C/C++
C语言中的宏定义
替换列表是一系列的C语言记号,包括标识符、关键字、数、字符常量、字符串字面量、运算符和标点符号。当预处理器遇到一个宏定义时,会做一个 “标识符”代表“替换列表”的记录。在文件后面的内容中,不管标识符在任何位置出现,预处理器都会用替换列表代替它。
黄规速
2022/04/14
6.6K0
从c++标准库指针萃取器谈一下traits技法
本篇文章基于gcc中标准库源码剖析一下标准库中的模板类pointer_traits,并且以此为例理解一下traits技法。
cpp加油站
2021/07/14
9030
从c++标准库指针萃取器谈一下traits技法
C++从入门到精通——auto的使用
C++的auto关键字用于自动推导变量的类型,让编译器根据变量的初始化表达式来确定其类型。使用auto可以简化代码,并且可以在某些情况下提高代码的可读性和灵活性。
鲜于言悠
2024/04/02
5940
【C++】模板的改进
​ 在 C++98/03 的泛型编程中,模板实例化有一个很繁琐的地方,就是连续两个右尖括号 >> 会被编译解释成右移操作符,而不是模板参数表的形式,需要一个空格进行分割,以避免发生编译时的错误。
利刃大大
2025/03/05
540
C++11学习笔记1
很久以前就知道C++11对我们课上讲的C++有很多改进的地方,当时也没有细学,最近一个偶然的机会陡然发现原来身边的同学好多都对C++11都颇有心得,推崇备至,回头想想在C++14,甚至C++17都不新鲜的现在,连C++11都不会的话显然有点说不过去了。。。于是呢我就打算利用最近闲着的时间,在补《人民的名义》的间隙顺便学学C++11应该也是极好的。
mythsman
2022/11/14
3360
相关推荐
告诉你所不知道的typedef
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文