typedef和define的对比
来源:互联网 发布:谷歌拍照软件 编辑:程序博客网 时间:2024/05/16 12:48
博客内容来源:网络、书籍和本人整理总结
define只是简单的字符串替换而typedef则是为一个类型取新的名字
example1:
typedef char* p_str1;
#define p_str2 char*;
p_str1 s1,s2;
p_str2 s3,s4;
--》s1,s2,s3都被定义为char *,s4则被定义成char。
example2:
typedef char* p_str;
char string[4] = "abc";
const char *p1 = string;
const p_str p2 = string;
p1++;
p2++;
--》p2++会报错
const p_str p2 = string;中p_str是一种我们自己定义的数据类型,而不可用char *替代!所以p2在此是只读的!
#define宏定义有一个长处:可以使用#ifdef、#ifndef等来进行逻辑判断,还可以用#undef来取消定义!
typedef有一个长处:它符合范围规则,使用typedef定义的变量类型,其作用范围限制在所定义的函数或者文件内(取决于定义的此变量位置),而宏定义没有!
typedef和复杂的变量声明:
1)
int *(*a[5])(int, char*);
-->typedef int *(*p_fun)(int, char*);
p_fun是一个类型别名
-->p_fun a[5];
使用定义的新类型来声明对象,等价于int * (*a[5])(int, char*);
2)
void (*b[10]) (void (*)());
-->typedef void (*p_fun_param)();
为void (*)()声明一个新类型
-->typedef void (*p_fun)(p_fun_param);
整体声明一个新类型
-->p_fun b[10];
使用定义的新类型来声明对象,等价于void (*b[10]) (void (*)());
谢谢阅读!
- typedef和define的对比
- 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 的区别
- 贝叶斯分类原理:
- H.264视频码流解析2
- 应用沙盒
- shell入门
- Linux防火墙
- typedef和define的对比
- linux MakeFile教程详解
- 基于haclon的曲线针识别实例
- 将一张图片用matlab转换成data格式,并导入CCS3.3显示
- 第八周 项目4-字符串加密
- Effective Java 18:接口优于抽象类 Prefer interfaces to abstract classes
- CCPC/ACM(杭州)热身赛
- UIBezierPath
- VS使用过程遇到的异常及解决方法