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

文章目录

1.define

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

特点

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

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

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

2.typedef

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

特点

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

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

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

相关推荐
摸鱼仙人~1 小时前
深入理解 MyBatis-Plus 的 `BaseMapper`
java·开发语言·mybatis
wdfk_prog1 小时前
[Linux]学习笔记系列 -- lib/dump_stack.c 栈回溯打印(Stack Trace Dumping) 内核调试与错误诊断的基石
linux·运维·服务器·c语言·笔记·学习
ITKEY_1 小时前
flutter日期选择国际化支持
开发语言·javascript·flutter
刃神太酷啦1 小时前
C++ 异常处理机制:从基础到实践的全面解析----《Hello C++ Wrold!》(20)--(C/C++)
java·c语言·开发语言·c++·qt·算法·leetcode
CYRUS_STUDIO2 小时前
OLLVM 移植 LLVM18 踩坑:一步步调试修复控制流平坦化
c语言·c++·llvm
q567315232 小时前
告别低效:构建健壮R爬虫的工程思维
开发语言·爬虫·r语言
枫叶丹42 小时前
【Qt开发】显示类控件(一)-> QLabel
开发语言·qt
Python私教2 小时前
源滚滚Rust全栈班v1.02 无符号整数详解
开发语言·后端·rust
yBmZlQzJ2 小时前
PyQt5 修改标签字体和颜色的程序
开发语言·python·qt
10001hours3 小时前
C语言第12讲
c语言·开发语言