宏定义学习
来源:互联网 发布:儿童学英语软件 编辑:程序博客网 时间:2024/06/01 11:59
## 是用于链接两个字符串# 用于把名字替换成字符串
#include <stdio.h>#include <stdlib.h>typedef void (*function)(int*);void setup_add(int* a){ *a=*a+1;}void setup_plus(int* a){ *a=*a-1;}void forward_add(int* a){ *a=*a+10;}void forward_plus(int* a){ *a=*a-10;}struct type_setup_forward{ char* type; function setup; function forward_cpu;};struct map_type_setup_forward{ int num; struct type_setup_forward* functions;};#define REGISTER_LAYER(name)\handle.num=handle.num+1;\handle.functions=(struct type_setup_forward*)realloc(handle.functions, sizeof(struct map_type_setup_forward*)*handle.num);\handle.functions[handle.num-1].type=#name;\handle.functions[handle.num-1].setup=&setup_##name;\handle.functions[handle.num-1].forward_cpu=&forward_##name;int main(){ int a = 100; struct map_type_setup_forward handle; handle.num=0; handle.functions=NULL; REGISTER_LAYER(add); REGISTER_LAYER(plus); printf("num = %d\n", handle.num); int i = 0; for(i = 0; i < handle.num; ++i){ printf("%s\n", handle.functions[i].type); handle.functions[i].setup(&a); handle.functions[i].forward_cpu(&a); printf("%d\n",a); } return 1;}
0 0
- 宏定义学习
- 宏定义使用学习
- 宏定义学习
- 宏定义学习
- 宏定义学习
- 宏定义学习(1)
- 【学习笔记】宏定义基础
- 开关宏定义的学习
- asterisk学习笔记7--宏定义规则
- C语言宏定义的学习
- 宏定义和内联函数的学习
- OpenCL学习笔记 - 关键字 宏定义
- 学习了用宏定义进行DEBUG
- IOS开发学习常用宏定义
- Cocos2dx 学习笔记22 常用宏定义
- EMC单片机宏定义学习手记
- 黑马程序员---学习笔记13:宏定义
- 宏定义-C语言基础学习笔记
- Java技术——Iterator和Enumeration的不同
- LoadRunner模拟Json请求
- iOS本地数据存储安全
- 【Android 基础】MediaPlayer(1) 与Service 混合播放音乐
- JS中判断null、undefined与NaN的方法
- 宏定义学习
- 2016.10.9 Java相关的知识点(类加载机制及数据库)
- 3.2 Data Member的布局
- Android开发的网站推荐
- PHP5.5新特性
- 博士生要做自己的导师
- Github操作指南
- 如何获取Python中list的子集
- Android res/layout中布局文件管理