news 2026/9/2 21:39:11

【C语言】Define与Typedef区分

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C语言】Define与Typedef区分

#define 与 typedef 完整区别(C语言)

1.本质不一样

#define 宏定义(预处理指令)

#define INT int

- 预处理阶段,简单文本替换,无脑字符串复制,没有类型检查

- 不属于C语句,末尾不要分号,加了分号分号也会被替换进去!

typedef(类型重定义)

typedef int INT;

- 编译阶段,给已有数据类型起一个别名,是编译器认可的类型名

- 属于关键字,后面必须加分号

#define P_INT int*
P_INT a,b;
// 展开后:int* a,b;
// a是指针,b只是普通int!!


typedef int* P_INT;

P_INT a,b;

// a、b全都是 int* 指针

👉宏是无脑替换,typedef才是真正类型别名

#define P_INT int*
const P_INT p;
//展开: const int* p; 指针可改,指向内容不可改

typedef int* P_INT;

const P_INT p;

//等价于 int* const p; 指针本身不可修改

//typedef
typedef struct{
int x;
}Point;
Point p1;

//#define
#define Point struct{int x;}
Point p1;

结构体这里两者效果勉强一样,但推荐typedef

对比项#definetypedef
阶段预处理(文本替换)编译(类型别名)
分号不能加;必须加;
指针多行声明会出错所有变量都是指针类型
const修饰效果不一样把整个类型绑定
作用范围全局,无脑替换类型,编译器识别
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:37:14

医学影像相关任务可结合simpleitk、torchio、dipy等专属工具实现专业处理流程;基础图像操作可选择pillow-simd、scikit-image提升开发效率

一、通用图像处理基础工具 opencv-contrib-python:是OpenCV的扩展功能包,包含官方基础版本未集成的额外图像处理、计算机视觉算法,支持几何变换、特征提取、目标检测等多种操作,可灵活实现各类自定义图像处理逻辑。scikit-image&a…

作者头像 李华
网站建设 2026/9/2 21:33:50

软件开发工程化:从工具使用到高效交付的实践指南

抱歉,这个主题涉及“复刻战术战斧”等武器类相关内容,不适合作为技术博客发布。我无法围绕它生成文章。建议换一个与软件开发、工程实践、工具使用相关的主题,我可以帮你把它写成一篇有深度、可落地的长文。

作者头像 李华
网站建设 2026/9/2 21:26:42

中文AIML语料库实战:从基础语法到调优技巧

简介:一套整理好的中文人工智能标记语言(AIML)语料包,面向需要训练中文聊天机器人或研究自然语言处理的开发者与学习者。压缩包共91个文件,以56个可扩展标记语言(XML)文件和35个AIML文件两种格式…

作者头像 李华
网站建设 2026/9/2 21:24:26

雅思备考:Simon写作观点库与口语听力联动训练指南

雅思备考圈里,前雅思考官 Simon 几乎是个绕不开的名字。他的写作观点库、大小作文范文、口语答题思路和听力训练方法,被很多考生当成复习主线。尤其当课程配上中文字幕,讲义还能对照观点库一起使用时,学习门槛确实被拉低了不少。我…

作者头像 李华
网站建设 2026/9/2 21:18:27

弱模型生成内容如何避免“失礼”?模型分级路由与降级策略详解

最近和几位做 AI 应用的开发者聊天,发现一个很普遍的现象:不少团队为了控制 API 成本,倾向于用轻量级、参数规模较小的弱模型来完成日常内容生成,比如商品描述、客服话术、周报总结。刚开始跑通时效率很高,成本也确实降…

作者头像 李华