请大家帮我看个程序

橡皮擦 2012-03-07 07:36:09
#include <dlfcn.h>
#include <stdio.h>
#include <stdlib.h>

typedef double (*pfunc)(double);
int main(void)
{
void *handle;
pfunc func;

handle = dlopen("libm.so", RTLD_NOW);
func = dlsym(handle, "sqrt");
if (handle == NULL || func == NULL) {
printf("Open so failed: %s.\n", dlerror());
exit(EXIT_FAILURE);
}

printf("add = %f\n", func(2));
dlclose(handle);
return 0;
}
...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2012-03-07
  • 打赏
  • 举报
回复

#include <dlfcn.h>
#include <stdio.h>
#include <stdlib.h>

typedef double (*pfunc)(double); // 定义一个函数指针数据类型pfunc,这种数据类型
// 用来指向参数是double,返回值也是double的函数
int main(void)
{
void *handle; // 定义一个指针
pfunc func; // 定义一个函数指针func

handle = dlopen("libm.so", RTLD_NOW); // 装载动态库libm.so
func = dlsym(handle, "sqrt"); // 从动态库中获取函数sqrt的函数指针
if (handle == NULL || func == NULL) // 如果获取失败
{
printf("Open so failed: %s.\n", dlerror());
exit(EXIT_FAILURE);
}

printf("add = %f\n", func(2)); // 计算2的平方根
dlclose(handle); // 关闭动态库
return 0;
}
qiuhui00 2012-03-07
  • 打赏
  • 举报
回复
就像3楼说的那样
ningto.com 2012-03-07
  • 打赏
  • 举报
回复
取出动态库中的sqrt函数,然后使用这个函数对2进行计算
橡皮擦 2012-03-07
  • 打赏
  • 举报
回复
分析一下这个程序
羽飞 2012-03-07
  • 打赏
  • 举报
回复
什么问题?
微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 微信小程序系统教程共有“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]——核心技术”、“微信小程序系统教程[阶段]客服消息+微信支付+九宝电商系统”。 “微信小程序系统教程[阶段]全套课程”包含: 1.微信小程序系统教程[阶段]_客服消息 2.微信小程序系统教程[阶段]_微信支付 3.微信小程序系统教程[阶段]_九宝电商系统 学习“微信小程序系统教程[阶段]”要求有微信小程序的基础。建议先学习“微信小程序系统教程[初级阶段]”、“微信小程序系统教程[中级阶段]”,后在报名“微信小程序系统教程[阶段]”。 阶段讲解的客服消息,是针对小程序的。后台程序用接近底层的技术,没有使用三方技术。这样降低同学们学习成本。 微信支付,这部分课程很有难度,要求同学们认真听讲,有不会的技术问题可以教老师。购买课程后联系老师,提供单号,给你源程序。 九宝电商系统是一套十分适和学习、项目的课程。既可以系统的学习微信小程序相关知识,还可以修改后上线。 “微信小程序系统教程[中级阶段]——核心技术”重点讲解微信小程序事件、组件、API 微信小程序系统教程[初级阶段],微信小程序0基础学起,讲解微信小程序开发的基础知识。 购买课程的同学,可赠送就九宝老师编写的《微信小程序开发宝典》。 购课咨询qq2326321088

69,380

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧