静态库中使用回调函数(-)
来源:互联网 发布:那种下载软件好 编辑:程序博客网 时间:2024/05/22 03:25
1、回调函数就是函数指针,传入参数可以使用函数指针。
2、库中提供接口,实现可以由调用者实现。
3、例子有三个并行文件夹:src ,app,lib。
文件夹src含有文件:function.c includes.h Makefile
文件function.c
#include "includes.h"//我们需要创建一个“库函数”,这个函数以函数指针为参数,通过它来调用不同的函数:/**************************************** * 库函数 ***************************************/float add_sub_mul_div(float a, float b, float (*op_func)(float, float)){ return (*op_func)(a, b);}
文件includes.h
#ifndef __INCLUDES__H__#define __INCLUDES__H__#include <stdio.h>#include <stdlib.h>float add_sub_mul_div(float a, float b, float (*op_func)(float, float));#endif
文件Makefile
# The C program compiler.CC=gcc AR=ar#COMPILE.c = $(CC) $(MY_CFLAGS) $(CFLAGS) $(CPPFLAGS) -cCOMPILE.c=$(CC) -Wall -call: libapilibapi:function.o $(AR) crv ../lib/libapi.a ../src/*.o# Rules for generating object files (.o).#----------------------------------------#objs:$(OBJS)%.o:%.c$(COMPILE.c) $< -o $@ clean:rm -rf *.ocd ../lib/;rm -rf *.a
文件夹app含有文件:main.c main.h Makefile
文件main.c
#include "main.h"//要完成加减乘除,我们需要定义四个函数分别实现加减乘除的运算功能,这几个函数就是:/**************************************** * 加减乘除函数 ***************************************/float ADD(float a, float b) { return a + b;}float SUB(float a, float b) { return a - b;}float MUL(float a, float b) { return a * b;}float DIV(float a, float b) { return a / b;}//我们就可以开始调用回调函数了:void main(){ printf("ADD = %f, SUB = %f\n",add_sub_mul_div(1.3, 2.2, MUL),add_sub_mul_div(1.3, 2.2, DIV)); }
文件main.h
#ifndef __MAIN__H__#define __MAIN__H__#include "../src/includes.h"#endif
文件MakefileTOP_DIR = ..SRC_DIR=${TOP_DIR}/srcSRC = ${wildcard ${shell pwd}/*.c} OBJ = ${patsubst %.c, %.o, ${SRC}}OBJECTS = $(OBJ) ../lib/libapi.a#如果make执行时,有“-I”或“--include-dir”参数,那么make就会在这个参数所指定的目录下去寻找。INC_DIR= -I${SRC_DIR} CC=gccTARGET =myappRM=rmCCFLAGS=-g -Wall $(INC_DIR)all:$(OBJECTS)cd ../src/;make clean;make$(CC) $(OBJECTS) -o $(TARGET) -lpthread$(OBJ):%.o:%.c@echo "Compiling $< ==> $@"${CC} ${CCFLAGS} -c $< -o $@clean:-$(RM) -rf *.o $(TARGET)中间生成的库存放在lib文件中,生成的可执行程序在文件app中。
阅读全文
0 0
- 静态库中使用回调函数(-)
- 静态库中使用回调函数(二)
- linux嵌入式应用开发- ubuntu eclipse/C 静态库中使用回调函数
- 类中静态回调函数应用
- 类中静态回调函数应用
- 类中静态回调函数应用
- 类中静态回调函数应用
- Delphi中回调函数的使用
- DELPHI中回调函数的使用
- DELPHI中回调函数的使用
- VC中回调函数使用
- V3d_View中回调函数的使用
- AS中使用回调函数
- C++ 中回调函数的使用
- android 中使用回调函数
- spring中使用了回调函数
- dll中多线程使用回调函数
- sqlite3中使用回调函数
- 详细解释数据挖掘的十大算法
- Add Two Numbers
- Apache 2.4 将域名指向www及默认跳转https的方法
- PCB阻抗匹配
- HDU
- 静态库中使用回调函数(-)
- forward和redirect的区别
- GitHub代码管理学习之路(二)
- Java中的switch-case的用法
- springMVC的工作流程
- 介绍一下我的足球主队拜仁慕尼黑
- sdk与开放API协议支持二次开发的摄像头
- IPv4
- 社会网络分析的主要内容