C++ typedef、#define、using的用法

发布时间 2023-11-02 15:26:43作者: 小海哥哥de

一、#define

1. 含义

#define主要用来做宏定义,主要格式为:

  #define 标识符 常量

宏定义后的标识符就是代表常量的意思,再以后的代码当中,使用标识符的地方都被替换成常量了,这里的常量可以是字符、字符串、变量、类型、表达式等等。值得注意的是,宏定义定义的标识符是在程序编译之前的预处理阶段进行替换的,也就是说在预处理阶段,已经把程序中所有的标识符全部替换成了常量,因此在程序运行阶段是调试不了该标识符的。

二、typedef

1. 含义

用typedef来给类型起一个别名,主要格式为:

  typedef 类型 别名

类型可以是基本数据类型,也可以是结构体等等。

三、using

1. 含义

using的作用是给数据类型起别名,它的作用跟typedef相似,主要格式为:

  using 别名 = 类型等

四、区分和联系

1.类型安全性:

using 提供类型安全性,因为它创建真正的类型别名。
typedef 也提供类型安全性,但不如 using 易读。
#define 不提供类型安全性,因为它只是文本替换。

2.可读性:

using 和 typedef 在可读性方面相似,都可以创建具有描述性的类型别名。
#define 的可读性通常较差,因为它只是文本替换。

3.作用范围:

using 和 typedef 的作用范围受限于块或命名空间。
#define 通常具有更广泛的作用范围,可以影响整个源文件。

4.用途:

using 和 typedef 用于创建类型别名,提高代码可读性。
#define 用于创建常量值或简单文本替换,也可以定义条件编译标志

五、建议

在现代C++中,using 是首选的方式,因为它提供了更好的类型安全性和可读性。typedef 仍然是有效的,尤其是在传统的C++代码中。#define 应该谨慎使用,因为它的使用容易导致维护问题和潜在的错误。根据情况选择合适的方式,以提高代码的可维护性和可读性。

资料:
https://blog.csdn.net/weixin_43340455/article/details/124481067
https://blog.csdn.net/m0_74036487/article/details/132790507