C学习笔记-typedef
2024-10-06 23:06:48
typedef是一种高级数据特性,它能使某一类型创建自己的名字
typedef unsigned char BYTE;
typedef struct man MAN;
BYTE b = 0x12;
- 与
#define
不同,typedef
仅限于数据类型,而不是能是表达式或具体的值 typedef
是编译器处理的,而不是预编译指令typedef
比#define
更灵活
直接看typedef好像没什么用处,使用BYTE定义一个unsigned char。使用typedef可以增加程序的可移植性
通过typedef定义函数指针
函数原型及调用
const char *getsubstr(const char *src, const char *str)
{
return strstr(src, str);
}
const char *func(const char *(*s)(const char *, const char *), const char *src, const char *str)
使用typedef以后的函数调用
const char *getsubstr(const char *src, const char *str)
{
return strstr(src, str);
}
typedef const char *(*SUBSTR)(const char *, const char *);
const char *func(SUBSTR p, const char *src, const char *str);
在程序当中如果是定义一个可读的常量,适合用#define
如果定义的是一个具体的数据类型,那么typedef
更加适合。
如果是定义一个函数指针,那么基本就typedef
最新文章
- Spark入门实战系列--6.SparkSQL(中)--深入了解SparkSQL运行计划及调优
- JavaScript对象(Object)
- mysql 删除重复数据保留只保留一条
- socket.io稳定性及事件测试
- 怒刷DP之 HDU 1069
- [Hadoop源码解读](一)MapReduce篇之InputFormat
- codeforces D. Count Good Substrings
- zzuli生化危机(dfs)
- 使用springboot完成密码的加密解密
- 2018 年 3 月 iOS架构师 面试总结
- Skyline TerraExplorer 7.0- 扩展信息树
- leetCode53. 最大子序和
- linux-kernel-4.4 移植 (1)启动
- linux下maven的安装
- 20181114教学sql
- 为什么要将Apache与Tomcat集成?(或不)
- Cracking The Coding Interview 3.2
- thread == 售票
- MySql服务初始化、安装、启动
- TopComponent设置某个控件焦点
热门文章
- sln、db、opendb、vcxproj、filters、user文件跟踪说明
- 用go iris 写的一个网页版文件共享应用(webapp)
- Visio:为什么按下方向键,选中的目标不动,绘图区(页面)却在移动
- Bootloader - Main system - Recovery的三角关系
- hdu 5773 最长递增子序列 (nlogn)+贪心
- TensorFlow使用记录 (十二): ℓ1 and ℓ2 Regularization
- AcWing:167. 木棒(dfs + 剪枝)
- HTML标签功能分类
- java生成10个不相等的1-20的随机数
- 自定义圆形图片控件CircleImageView的实现