重新理解typedef——用一个名字代替类型;#define——预处理时把小名换成大名。
来源:互联网 发布:php接口token验证 编辑:程序博客网 时间:2024/04/27 14:13
#define xidada xijinping //给xijinping起了个小名xidada以后只要遇到xidada 就会原封不动地替换成xijinping。#define int INT 同理
void hello(void*);// 声明:
类型:void
名字:hello
void (* )(void * ); //类型:表示 传入参数是void * 返回值使void的函数指针。
void (* fun)(void * ); //声明:
类型:传入参数是void * 返回值使void的函数指针。
变量名字:fun
typedef void (* FUN)(void * ) ;//用FUN【名字(判断哪个是名字的方法同声明)】代替void (* )(void * )【类型】
int num;
下面三种方式等价:
1.
hello(&num);
2.
fun = max;
fun (&num);
3.
FUN sayhello;//FUN代表的就是void (* )(void * )【类型】
//上条语句与void (* sayhello)(void * )等价
sayhello(&num);
#include<stdio.h>void hello(void){ printf("hello!\n"); return;}void goodby(void){ printf("goodby!\n"); return;}typedef void (*FUN)(void);void (*ptr_hello)(void);int main(void){ puts("directly:"); hello(); puts("using pointer:"); ptr_hello = hello; ptr_hello(); puts("typedef:"); FUN function[2]; function[0] = hello; function[1] = goodby; //或者直接FUN function[2] = {hello,goodby}; function[0](); function[1](); int answer; FUN call; puts("1:hello,2:goodby"); do{ scanf("%d",&answer); }while(answer != 1 && answer != 2); if(answer == 1) { call = function[0]; } else { call = function[1]; } call(); return 0;}
参考
http://www.xuebuyuan.com/1814447.html
0 0
- 重新理解typedef——用一个名字代替类型;#define——预处理时把小名换成大名。
- C/CPP点滴积累—#define ,typedef
- 类型转换——如何将一个List<Map<String,String>>类型换成json格式
- 2014腾讯实习生笔试题——define与typedef
- C——#define和typedef的用法与区别
- 标准C程序设计—define和typedef区别
- typedef(编译时处理)和define(预处理)
- typedef #define 理解
- 类型别名typedef与#define
- define和typedef的理解
- 深入理解 typedef 与 #define
- #define 与typedef 的理解
- mac下的改装人生——把主硬盘换成ssd
- 黑马程序员——C语言基础--关于typedef和define的重要区别记录以及typedef的经典例子
- 尽量以const,enum,inline代替#define——effective c++学习笔记
- python: 怎样写一个函数把名字大写并变成下面这样——字典与三引号
- 在类型定义时,请喜欢typedef而不是define
- 多用类型常量,少用#define预处理指令
- java爬虫学习日记1-基本爬虫原理介绍
- 字符串全排列
- 关于scanf与gets的区别
- Foundation => Objective-C _ Part3
- python连接mysql和mongo数据库
- 重新理解typedef——用一个名字代替类型;#define——预处理时把小名换成大名。
- jsp语法与jsp基本知识点
- Android 内容提供者ContentProvider
- TLD学习(3) arthurv版TLD
- SELECT 字段 FROM 表 WHERE 某字段 Like 条件
- 接口 interface
- iOS UISearchBar和UISearchDisplayController
- 几种极角排序的cmp函数摘录
- 更改myeclipse工具的内存和tomcat的内存