typedef和#define的区别
来源:互联网 发布:信息系统网络架构图 编辑:程序博客网 时间:2024/05/18 00:04
#typedef是为类型起别名,在编译中与 类型名起相同作用,不分配内存。
用法:
#tyepedef 类型名 别名; 如:
#typedef int INT
#define是预处理器指令,在编译时会进行简单的整体替换(即当替换值为其他变量的一部分时不做替换),不检查正确性。
用法:
#define 替换值 被替换值 如:
#define NUM 50
#define SUB(x) x*x
(后面无分号)
一、使用范围
typedef只能用于给变量起别名,#define可以用来替换常量。
二、在对指针变量使用时
char_p p1,p2;
会将p1,p2都声明为指向字符的指针。
CHAR_P p1,p2;
只会进行简单的替换,只将p1声明为指针。p2将被声明为一个字符常量值。
三、在与const一起使用时
typedef char * char_p#define CHAR_P char *const char_p p1;const CHAR_p p2;
p1指针不可更改,指向固定的内存地址,即原声明相当于char * const p1;
p2指向内容不可更改,指向的内存空间为char型,即原声明相当于 const char * p2。
四、typedef可以在C中帮助声明struct
在老版本中C声明结构体
struct MyStruct{ int a ; int b;};struct MyStruct Num;声明结构体必须加关键字struct。
而在C++中直接可以用
Mystruct Num;有了typedef在老版本C中可以直接实现C++中的效果,即
typedef struct MyStruct{ int a; int b;}MyNum;
MyNum Num;
0 0
- typedef和define的区别
- typedef 和 define的区别
- define和typedef的区别
- #define和typedef的区别
- Typedef和define的区别
- #define和typedef的区别
- Typedef和define的区别
- #define和typedef的区别
- Typedef和#define的区别
- typedef 和 define的区别
- typedef和#define的区别
- define和typedef的区别
- typedef和#define的区别
- typedef和define的区别
- typedef和#define的区别
- typedef和#define的区别
- typedef和define 的区别
- typedef和define的区别
- C#中浅拷贝与深拷贝(复制)
- springmvc4.2.1+mybatis3.3.0+maven3.3+mysql读写分离
- Android开发之头像上传(包含拍照,从相册选择图片,裁剪等)
- 各种编程语言的深度学习库整理
- Android EditText和TextView图文混排
- typedef和#define的区别
- 让你彻底弄清offset
- IOS巅峰之归档与反归档
- Item 28:不要返回对象内部的句柄 Effective C++笔记
- SVN分支的合并和同步
- hdu1829
- String,StringBuffer,StringBuilder黑马精华贴
- Eclipse中安装SVN插件方法
- 《数据结构与算法分析》寻找欧拉回路--多次修改最终复杂度O(E+V)