typedef与#define的区别是什么?
来源:互联网 发布:北师大网络远程教育 编辑:程序博客网 时间:2024/06/05 18:15
typedef是为原有类型声明一个新的名字,“typedef int* PINT_TYP ”就是声明了一个新的数据类型,数据类型名为PINT_TYP,其功能与int *
是完全一样的,也就是说,PINT_TYP与int *
本质上完全相等(在程序中遇到PINT_TYP不是简单地替换)。
而“#define PINT_DEF int*”是简单的宏定义,在预处理阶段就已经将PINT_DEF替换为int *
了,它与int *
不等价(只是表面的特征相同)。
const修饰的是什么?
知道typedef与#define的区别以后我们来分析,以上三条语句中const分别修饰谁:由预处理文件可知:
- 1
- 2
- 3
对于#define宏定义,其const修饰的就是指针指向的数值(*b),与cosnt int * a;
是一样的(修饰*a)。而typedef其const修饰的是指针,因为PINT_TYP被看做是一个整体,而不是int
与*
两部分。所以cosnt修饰的是c,而不是*c,因为在const PINT_TYP c
这条语句中,根部就不存在*
这个字符。
再一个例子加深印象:
阅读全文
1 0
- typedef与#define的区别是什么?
- typedef与#define的区别
- #typedef与#define的区别
- typedef与define的区别
- typedef与#define 的区别
- typedef与#define 的区别
- typedef与#define 的区别
- typedef与#define的区别
- #define与 typedef的区别
- typedef与define的区别
- typedef与define的区别
- #define 与 typedef 的区别
- typedef与#define的区别
- typedef 与 #define的区别
- typedef 与#define的区别
- #define与typedef的区别
- typedef 与 #define的区别
- define与typedef的区别
- maven中自定义的jar包引入的解决方案
- C#winform读取.txt文件
- jdk tomcat mysql eclipse安装(centos / windows)
- safari 跨域cookie 无法存储
- spring boot jar包 瘦身
- typedef与#define的区别是什么?
- ajax oracle 返回中文乱码问题
- 【marquee标签插件】原生JavaScript模拟<marquee>的跑马灯效果
- JDK动态代理的底层实现原理
- python-基础笔记3-函数的参数类型
- 移动web开发 meta头
- opencv 2.4.9 摄像头读取
- nas crontab
- js脚本加载方式:本地加载与cdn云加速加载那个速度更快?