博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
typedef 与 #define的区别以及 const的用法
阅读量:5275 次
发布时间:2019-06-14

本文共 559 字,大约阅读时间需要 1 分钟。

const用来限定一个变量的值不能被改变,初学者在使用const修饰指针变量时常容易犯错,看两个例子

例子A:

char * const a = 'A';

a = 'B';

例子B:

const char * a = 'A';

a = 'B';

结论:例子A是正确的,B是错误的,说明const在*左边修饰指针变量锁指向的值,在右边修饰指针变量本身

typedef用来定义一个类型的别名,#define也是用来替换,他们都不创造任何新的东西 具体有什么不同看下面两个例子

程序A:

typedef char * pStr;

char string[4] = "abc";

const pStr p = string;

p++;

程序B:

#define pStr char*

char string[4] = "abc";

const pStr p = string;

p++;

第一个程序会出错,而第二个不会

总结:首先,#define 是预编译指令,在预编译阶段产生作用;typedef在编译阶段产生作用

其次,#define 只做替换,不进行类型检查;typedef会做类型检查

转载于:https://www.cnblogs.com/pxguoo/archive/2011/08/12/2136577.html

你可能感兴趣的文章
AX 2009 Grid控件下多选行
查看>>
PHP的配置
查看>>
Struts框架----进度1
查看>>
Round B APAC Test 2017
查看>>
MySQL 字符编码问题详细解释
查看>>
Windows 2003全面优化
查看>>
格而知之2:UIView的autoresizingMask属性探究
查看>>
我的Hook学习笔记
查看>>
寄Android开发Gradle你需要知道的知识
查看>>
整理推荐的CSS属性书写顺序
查看>>
css & input type & search icon
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
ssm框架之将数据库的数据导入导出为excel文件
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
0320-学习进度条
查看>>
MetaWeblog API Test
查看>>
移动、尺寸改变
查看>>
c# 文件笔记
查看>>
类和结构
查看>>
typeset shell 用法
查看>>