当前位置: 首页 > news >正文

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

文章目录

    • 1.define
      • 特点
    • 2.typedef
      • 特点

1.define

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

特点

文本替换:#define 主要用于文本替换,在编译前将指定的标识符替换为相应的值或表达式。
无类型检查:由于是在预处理阶段执行的简单文本替换,编译器不会对 #define 定义的内容进行类型检查。
作用范围广泛:可以用于定义常量、函数宏等。

2.typedef

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

特点

类型别名:typedef 用于为现有类型创建一个新的名字,使得代码更加易读或简化复杂类型的声明。
类型安全:由于是在编译阶段处理的,编译器会对 typedef 定义的类型进行类型检查。
作用范围特定于类型:只能用于定义类型的别名,不能用于定义常量或函数宏。


http://www.mrgr.cn/news/90157.html

相关文章:

  • shell脚本控制——定时运行作业
  • CEF132 编译指南 MacOS 篇 - 基础开发工具安装实战 (二)
  • 实验5 配置OSPFv2验证
  • 最大熵模型原理和相关文献
  • C语言第16节:数据在内存中的存储
  • 深度学习 交易预测 LSTM 层的神经元数量、训练轮数
  • 本地部署DeepSeek Nodejs版
  • 2025年1月1日起,美国禁止在食品包装中使用PFAS+PFAS标准办理讲解
  • 【Pandas】pandas Series nunique
  • Python的
  • 大模型基本原理(二)——ChatGPT的工作原理
  • 嵌入式工程师面试准备(客观题准备)
  • 示例代码:C# MQTTS双向认证(客户端)(服务器EMQX)
  • 【清晰教程】通过Docker为本地DeepSeek-r1部署WebUI界面
  • Mac(m1)本地部署deepseek-R1模型
  • QT实现多线程的方法
  • 使用EVE-NG-锐捷实现单臂路由
  • openbmc web/redfish到底层设计(持续更新...)
  • Spring AI 介绍
  • 【操作系统】Linux基本命令
  • Redis | 十大数据类型
  • Ubuntu 下 nginx-1.24.0 源码分析 ngx_tm_t 类型
  • 旋转位置编码(RoPE)讲解和代码实现
  • vue动态table 动态表头数据+动态列表数据
  • iOS主要知识点梳理回顾-3-运行时
  • 力扣--链表