C语言typedef与#define的区别
typedef和#define
define 没有参加编译,在预处理的时候就被替换掉了。
typedef参加编译和链接。typedef是重命名,可以为枚举结构体等等重新命名,提高代码整洁。
一、typedef的用法
C语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:
typedef int INT;
typedef (int*) pINT;
typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“非直观性”等缺点。
二、define的用法
define为一宏定义语句,通常用它来定义常量(包括无参量与带参量),以及用来实现那些“表面似和善、背后一长串”的宏,它本身并不在编译过程中进行,而是在这之前(预处理过程)就已经完成了,但也因此难以发现潜在的错误及其它代码维护问题,它的实例像:
define FALSE 0
define TRUE 1
define Add(a,b) ((a)+(b));
define Loop_10 for (int i=0; i<10; i++)
三、typedef与#define的区别
- #define 归预处理器管,typedef 归编译器管。
- #define 是替换,typedef是重命名
个人结论:这两个都少用
C语言typedef与#define的区别相关推荐
- C语言-typedef与#define的区别
目录 1 typedef 1.1 将复杂的声明简单化 1.2 定义平台无关的类型 1.3 与struct的结合使用 1.4 typedef使用公式 2 typedef与#define的区别 2.1 执 ...
- C语言 typedef 和 define 区别 - C语言零基础入门教程
目录 一.typedef 简介 1.typedef 简化复杂的类型声明 A.定义普通变量 B.定义函数指针 C.定义结构体 2.定义与平台无关的类型 二.define 简介 三.typedef 和 d ...
- C++中typedef和define的区别
typedef和#define的用法与区别 一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: ...
- typedef与#define宏区别
先让我们了解一下typedef的功能,typedef简单来说就是给类型取一个别名: 如 typedef int New 那么int就有一个别名叫New了,以后size就和int这个类型一共用法了. ...
- c语言错误c4430,C 语言 typedef 与 #define 比较
Alvin typedef 与 #define 的区别 1. 执行时间不同 关键字 typedef 在编译阶段有效,由于是在编译阶段,因此 typedef 有类型检查的功能. #define 则是宏定 ...
- c语言typedef(c语言typedef和define)
什么是C语言 C語言是1972年左右由DennisRitchie一??人在?????室(?稱AT&T)設?開發出?淼碾?腦程式語言.他??r與KenThompson?扇斯餐??UNIX作?I ...
- C语言 typedef 和 #define详解
类型定义 (typedef) 摘自 <C程序设计语言>6.7节 C语言提供了一个称为typedef的功能,它用来建立新的数据类型名,例如,声明 typedef int Length; 将L ...
- typedef和define的区别
typedef和define都能够对一个类型起新的别名,但这两者有一些不同之处:首先,typedef是在编译时完成的,define是在预处理时完成的:其次,先看比如进行如下定义: #define ch ...
- C语言typedefine 和define的区别
define : 宏定义,在预编译阶段就进行处理,简单的字符串代换, typedefine: 编译时进行处理,不是简单的替换,而是对类型说明符的重新命名.被命名的标识符具有类型说明的功能, 代码说明 ...
最新文章
- 一个简单的更改让PyTorch读取表格数据的速度提高20倍:可大大加快深度学习训练的速度...
- 环境变量_UG环境变量设置
- 【CentOS Linux 7】实验7【FTP服务器配置管理】
- C# 两时间,时间间隔
- C#获取电脑IP、MAC地址示例代码
- mysql使用的索引长度_MySQL索引的索引长度问题
- 【汇编】汇编程序入门篇
- 第 21 章 中介者模式
- 富文本支持粘贴excel表格_Anki插件-OneNote importer(富文本批量导入)
- Wap Push Access Protocol(PAP)介绍-开放源码
- SQL Server 置疑修复
- 根据身份证号 计算具体年龄
- uniapp app 腾讯云 IM 通讯 封装基础登录方法
- 渠道商用假流量冒充真实用户
- SpringBoot设置网站页面小图标——Favicon
- 在opencv中如何生成灰度图
- error C2059: syntax error : 'constant'
- es6转es5的在线工具
- R语言学习记录之安装caret包与jupyter关联R内核
- 灾难恢复之什么是RTORPO?
热门文章
- CSS3伪元素、伪类选择器
- appium和selenium不同与相同之处
- spring和mybatis的整合开发(基于MapperScannerConfigurer的整合开发(适用于复杂项目,接口较多的情况))...
- flask框架基本使用(2)(响应与重定向)
- go语音实战读后感——一
- Android几秒后自动关闭dialog
- unity中怎么在InspectorI面板加LOGO
- 网页上线后音频不能自动播放
- js中变量作用域的小理解
- 解决ueditor jquery javascript 取值问题