【C语言】#define和typedef的区别

文章目录

1.define

#define 是预处理器指令,用来进行宏定义。它在编译之前由预处理器处理,主要用于定义常量、简单的函数宏或者代码片段的替换。

特点

文本替换:#define 主要用于文本替换,在编译前将指定的标识符替换为相应的值或表达式。

无类型检查:由于是在预处理阶段执行的简单文本替换,编译器不会对 #define 定义的内容进行类型检查。

作用范围广泛:可以用于定义常量、函数宏等。

2.typedef

typedef 是关键字,用于给现有的数据类型创建一个新的名字。它在编译阶段处理。

特点

类型别名:typedef 用于为现有类型创建一个新的名字,使得代码更加易读或简化复杂类型的声明。

类型安全:由于是在编译阶段处理的,编译器会对 typedef 定义的类型进行类型检查。

作用范围特定于类型:只能用于定义类型的别名,不能用于定义常量或函数宏。

相关推荐
乌鸦9447 分钟前
《STL--stack 和 queue 的使用及其底层实现》
开发语言·c++·priority_queue·适配器stack、queue
Chef_Chen20 分钟前
从0开始学习R语言--Day12--泊松分布
开发语言·学习·r语言
廿二松柏木22 分钟前
MATLAB实现井字棋
开发语言·matlab
小智学长 | 嵌入式44 分钟前
SOC-ESP32S3部分:22-分区表
开发语言·单片机·esp32
gou123412341 小时前
【Golang进阶】第八章:并发编程基础——从Goroutine调度到Channel通信实战
开发语言·后端·golang
xtmatao1 小时前
WIN11+VSCODE搭建c/c++开发环境
c语言·c++·vscode
一只自律的鸡1 小时前
STL之vector
开发语言·c++·算法
此刻我在家里喂猪呢1 小时前
qt之开发大恒usb3.0相机三
开发语言·qt
梁下轻语的秋缘1 小时前
每日c/c++题 备战蓝桥杯(P2240 【深基12.例1】部分背包问题)
c语言·c++·蓝桥杯
嵌入式与Linux那些事2 小时前
X-MACRO使用技巧
c语言·嵌入式软件·计算机基础