C学习笔记-typedef
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
C学习笔记-typedef的更多相关文章
- Object C学习笔记24-关键字总结
		学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法. 1. #import #import <> 从syste ... 
- Object C学习笔记22-#define 用法
		上一篇讲到了typedef 关键字的使用,可以参考文章 Object C 学习笔记--typedef用法 .而在c中还有另外一个很重要的关键字#define. 一. #define 简介 在C中利用预 ... 
- Object C学习笔记24-关键字总结(转)
		学习Object C也有段时间了,学习的过程中涉及到了很多Object C中的关键字,本文总结一下所涉及到的关键字以及基本语法. 1. #import #import <> 从syste ... 
- linux驱动开发之块设备学习笔记
		我的博客主要用来存放我的学习笔记,如有侵权,请与我练习,我会立刻删除.学习参考:http://www.cnblogs.com/yuanfang/archive/2010/12/24/1916231.h ... 
- BZOJ 2120 数颜色&2453 维护队列 [带修改的莫队算法]【学习笔记】
		2120: 数颜色 Time Limit: 6 Sec Memory Limit: 259 MBSubmit: 3665 Solved: 1422[Submit][Status][Discuss] ... 
- BZOJ 1061: [Noi2008]志愿者招募 [单纯形法]【学习笔记】
		1061: [Noi2008]志愿者招募 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 3975 Solved: 2421[Submit][Stat ... 
- C++学习笔记(3)
		本学习笔记是C++ primer plus(第六版)学习笔记.是C++学习笔记(2)的后续.复习C++基础知识的可以瞄瞄. 转载请注明出处http://www.cnblogs.com/zrtqsk/p ... 
- C++学习笔记(2)
		本学习笔记是C++ primer plus(第六版)学习笔记.是C++学习笔记(1)的后续.复习C++基础知识的可以瞄瞄. 转载请注明出处http://www.cnblogs.com/zrtqsk/p ... 
- 实验楼课程管理程序-深入学习《C++ Primer第五版》实验报告&学习笔记1
		本片博客为实验楼的训练营课程深入学习<C++ Primer第五版>的实验报告和学习笔记. 原课程地址为:https://www.shiyanlou.com/courses/405# 原文出 ... 
随机推荐
- vs2015显示代码行数
			打开visual studio 2015,在菜单中点击“工具” --> "选项" -->“文本编辑器” --> "所有语言" -->勾选 ... 
- 对Sting类型的探讨
			string类型经常和基本数据类型一起被我们熟练运用,但却不被归为基本数据类型,他是特殊的引用类型.引用数据类型还有类,接口.数组.枚举类型和注解类型. 我们来看下jdk对他的解释: String是在 ... 
- Gym 100971A     Treasure Island    BFS    思维题
			A - Treasure Island Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64 ... 
- sql 用表组织数据
			一.四种完整性约束 1.实体完整性约束:不允许出现相同记录的数据 2.域完整性约束:对字段进行限定,不得插入不符合限定的数据 3.引用完整性:表与表之间的关系 4.自定义完整性约束:开发人员自己设定对 ... 
- Django-rbac权限
			1.注册应用rbac 2.设计表 权限表 角色表 用户表 不同角色有不同的权限,给每个用户分配不同的角色(一个用户可以有多个角色) 3.数据注入 将数据注入在rbac中封装成一个函数 4.权限认证是在 ... 
- css 元素的竖向百分比设定是相对于容器的高度吗?
			结论是,如果是height的话,是相对于容器高度,如果是padding-height,margin-height则是相对于容器的宽度. 举例说明: <!DOCTYPE html> < ... 
- IP输出 之 分片ip_fragment、ip_do_fragment
			概述 ip_fragment函数用于判断是否进行分片,在没有设置DF标记的情况下进入分片,如果设置了DF标记,则继续判断,如果不允许DF分片或者收到的最大分片大于MTU大小,则回复ICMP,释放skb ... 
- compare across commits online
			https://gist.github.com/nevik/5689882 Examples: https://github.com/octocat/Spoon-Knife/compare/ed122 ... 
- koa 基础(十二)koa-static 静态资源中间件 静态web服务
			1.目录 2.app.js /** * koa-static 静态资源中间件 静态web服务 * 1.npm install --save koa-static * 2.const static = ... 
- SolrCloud配置
			一.简介 Apache Solr是基于Lucene的全文搜索引擎.如何让Solr具有容错性和高可用性,SolrCloud可以帮助我们搭建集群,提供分布式索引,以及自动备份.SolrCloud是Solr ... 
