从品牌网站建设到网络营销策划,从策略到执行的一站式服务
对应于面向对象语言的构造函数注入,ssc网站架设【企鹅21717-93408】C语言作为过程语言,参数注入法是最简单、也是最直接的方法。最常见的排序方法qsort就是用这种方法:
创新互联建站是一家专注网站建设、网络营销策划、微信小程序、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十多年以来,已经为上千家白乌鱼各业的企业公司提供互联网服务。现在,服务的上千家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
void qsort(void base, size_t num, size_t size, int (compar)(const void,const void));
可以看到qsort函数的第四个参数compar就是外部依赖的对象(函数),因为不同场景有不同的比较元素大小的方式,通过参数将外部依赖注入,使该函数更加具有通用型,因为实际上我们用qsort,只是用他的排序算法,其他的都是和具体使用场景有关。
设置(set)接口注入
上一篇我们介绍的设置回调函数的方法其实就是使用这种方法,其本质就是专门对外提供一个接口,用来将依赖的外部对象或者函数注入到本模块中来。比如开发一个模块,需要申请内存,但是为了易用性,除了使用系统自带的内存申请函数,我们需要支持第三方的内存池模块来申请内存,我们就可以提供一个API来设置申请和释放内存的函数,如下示例:
///默认申请内存方式为系统自带的函数
static void (malloc_function)(size_t size) = malloc;
static void (free_function)(void p) = free;
int sample_module_init()
{
return 0;
}
///设置新的分配内存的函数
int sample_module_set_memory_api(void (get)(size_t size), void(put)(void p))
{
malloc_function = get;
free_function = put;
return 0;
}
///申请一个size大小的int类型数组
int sample_module_create_int_array(size_t size)
{
int p = (int )malloc_function(sizeof(int) * size);
return p;
}
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图