当前位置: 首页 > news >正文

建立网站报价网站文章优化技巧

建立网站报价,网站文章优化技巧,淘宝网站建设类目需要什么资质,学做网站有没有前途1. 插件式编程逻辑 函数功能主体不变,同时引入不同的操作规则/函数指针,完成当前函数的功能多样式实现,生活中案例有,红白机/游戏机,擦丝器,可替换刀头螺丝刀 2. 函数指针语法要求 【核心理念】 替换 删除…
1. 插件式编程逻辑

函数功能主体不变,同时引入不同的操作规则/函数指针,完成当前函数的功能多样式实现,生活中案例有,红白机/游戏机,擦丝器,可替换刀头螺丝刀

2. 函数指针语法要求

【核心理念】

  • 替换

  • 删除

int my_add(int n1, int n2);

函数名对于当前函数而言是一个【指针常量】,对于当前函数在内存【代码区】的空间首地址。函数指针的类型是根据当前函数的【返回值类型】和【参数类型】决定

如果需要定义一个函数指针用于存储 my_add 函数在内存中的首地址。格式

// 根据已知函数声明,分析当前的函数数据类型,推演对应函数指针定义形式
// 1. 【替换】将函数名替换为 (*函数指针名)
my_add ==> (*p_fun);
// 2. 【删除】删除函数形式参数列表中的参数变量名称
(int n1, int n2) ==> (int, int);
​
// 整合之后, 当前函数指针变量为,当前函数指针可以存储的函数地址
// 要求
//      1. 返回值为 int 类型,
//      2. 参数必须是两个 int 类型。
int (*p_fun)(int, int);
3. 函数指针案例
#include <stdio.h>
​
int my_add(int n1, int n2);
​
int main(int argc, char const *argv[])
{/*根据当前 my_add 函数定义一个函数指针函数名是当前函数在内存代码区的空间首地址。*/int (*p_fun)(int, int) = my_add;
​printf("p_fun : %p\n", p_fun);printf("my_add : %p\n", my_add);
​printf("my_add(10, 20) : %d\n", my_add(10, 20));printf("p_fun(10, 20) : %d\n", p_fun(10, 20));
​return 0;
}
​
int my_add(int n1, int n2)
{return n1 + n2;
}
4. 函数指针作为函数的参数【重点】
#include <stdio.h>
​
int my_add(int n1, int n2);
int my_sub(int n1, int n2);
int my_mul(int n1, int n2);
int my_div(int n1, int n2);
​
/*** 当前函数所需参数是两个 int 类型数据,和一个函数指针,函数指针要求* 提供的函数,必须是返回值为 int 类型,参数有是两个 int 类型函数。* * @param n1    用户提供的 int 类型数据    * @param n2    用户提供的 int 类型数据* @param p_fun 用户指定处理当前两个 int 类型数据的函数。* @return 返回值是当前函数指针指向函数执行结果。*/
int operate(int n1, int n2, int (*p_fun)(int, int));
​
int main(int argc, char const *argv[])
{/*函数所需参数是一个函数指针,需要提供给函数的实际参数是满足函数指针限制的函数名称。*/int ret = operate(10, 20, my_add);printf("ret : %d\n", ret);
​ret = operate(100, 20, my_sub);printf("ret : %d\n", ret);
​ret = operate(10, 20, my_mul);printf("ret : %d\n", ret);
​ret = operate(100, 20, my_div);printf("ret : %d\n", ret);return 0;
}
​
int operate(int n1, int n2, int (*p_fun)(int, int))
{return p_fun(n1, n2);
}
​
int my_add(int n1, int n2)
{return n1 + n2;
}
int my_sub(int n1, int n2)
{return n1 - n2;
}
int my_mul(int n1, int n2)
{return n1 * n2;
}
int my_div(int n1, int n2)
{return n1 / n2;
}
5. 函数指针作为过滤函数条件限制实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
​
#include "student.h"
​
void filter_student_data1(Student **stu_array);
void filter_student_data2(Student **stu_array);
​
​
/*** 谓语判断,对提供的 Student * 数据进行判断,返回结果是一个* int 类型数据,满足条件返回 1,否则返回 0* * @param stu Student * 结构体指针* @return 函数内部进行数据判断,满足返回 1,否则返回 0*/
int predicate(Student * stu);
​
​
/*** 使用 predicate 谓语函数作为当前过滤展示 Student * 条件内容,要求用户提供的* 参数为 Student * 指针数组,和 处理过滤当前 Student * 条件的函数指针,要求函数* 指针返回值类型必须是 int 类型,参数类型必须是 Student * 类型。* * @param stu_array Student * 指针数组* @param predicate 函数指针,要求提供的函数返回值为 int ,参数为 Student **/
void filter_student_data_using_predicate(Student **stu_array, int (*predicate)(Student *));
​
​
int main(int argc, char const *argv[])
{Student **stu_array = (Student **)calloc(10, sizeof(Student *));
​for (size_t i = 0; i < 10; i++){stu_array[i] = create_new_student(i + 1, "James", i * 5, 'M');}
​
#if 0filter_student_data1(stu_array);printf("=----------------------------------=\n");filter_student_data2(stu_array);
#endif filter_student_data_using_predicate(stu_array, predicate);
​for (size_t i = 0; i < 10; i++){release_student(stu_array[i]);}
​return 0;
}
​
int predicate(Student * stu)
{return stu->id < 6;
}
​
void filter_student_data_using_predicate(Student **stu_array, int (*predicate)(Student *))
{for (size_t i = 0; i < 10; i++){// 直接利用函数指针作为 if 条件判断依据if (predicate(stu_array[i])){show_student_data(stu_array[i]);}}
}
​
void filter_student_data1(Student **stu_array)
{for (size_t i = 0; i < 10; i++){if (stu_array[i]->age > 20){show_student_data(stu_array[i]);}}
}
void filter_student_data2(Student **stu_array)
{for (size_t i = 0; i < 10; i++){if (stu_array[i]->id < 3){show_student_data(stu_array[i]);}}
}


文章转载自:
http://dinncoepidemic.wbqt.cn
http://dinncospectrin.wbqt.cn
http://dinncothaddaeus.wbqt.cn
http://dinncounreceipted.wbqt.cn
http://dinncoinhibition.wbqt.cn
http://dinncosoodling.wbqt.cn
http://dinncoflexagon.wbqt.cn
http://dinncolipotropic.wbqt.cn
http://dinncoempyreumatic.wbqt.cn
http://dinncomoline.wbqt.cn
http://dinncolagnappe.wbqt.cn
http://dinncoexquay.wbqt.cn
http://dinncochara.wbqt.cn
http://dinncoallonge.wbqt.cn
http://dinncomacabre.wbqt.cn
http://dinncohumanistic.wbqt.cn
http://dinncocoelenteron.wbqt.cn
http://dinncogam.wbqt.cn
http://dinncozanily.wbqt.cn
http://dinncomicrophotograph.wbqt.cn
http://dinncocourses.wbqt.cn
http://dinncoheadstall.wbqt.cn
http://dinncowillemstad.wbqt.cn
http://dinncoportaltoportal.wbqt.cn
http://dinncodialogue.wbqt.cn
http://dinncofairy.wbqt.cn
http://dinncodesequestrate.wbqt.cn
http://dinncounliveable.wbqt.cn
http://dinncoirs.wbqt.cn
http://dinncopondweed.wbqt.cn
http://dinncoepigeal.wbqt.cn
http://dinncosadhe.wbqt.cn
http://dinncovizir.wbqt.cn
http://dinncoprosily.wbqt.cn
http://dinncogentilesse.wbqt.cn
http://dinncolevantine.wbqt.cn
http://dinncopagination.wbqt.cn
http://dinncodemurral.wbqt.cn
http://dinncoshlump.wbqt.cn
http://dinncofavorable.wbqt.cn
http://dinncogildhall.wbqt.cn
http://dinncobisectrix.wbqt.cn
http://dinncoinfringe.wbqt.cn
http://dinncoreminiscential.wbqt.cn
http://dinncoprotective.wbqt.cn
http://dinncotetchy.wbqt.cn
http://dinncobiobibliography.wbqt.cn
http://dinncocolored.wbqt.cn
http://dinncotangly.wbqt.cn
http://dinncolouie.wbqt.cn
http://dinncosensate.wbqt.cn
http://dinncoautofocus.wbqt.cn
http://dinncosequestered.wbqt.cn
http://dinncoendocommensal.wbqt.cn
http://dinncominikin.wbqt.cn
http://dinncoenthusiastically.wbqt.cn
http://dinncoculmination.wbqt.cn
http://dinncoisraelitish.wbqt.cn
http://dinncoleptosomatic.wbqt.cn
http://dinncodestructional.wbqt.cn
http://dinncobrachydactyl.wbqt.cn
http://dinncoworkhand.wbqt.cn
http://dinncoelectrophysiological.wbqt.cn
http://dinncohistrionic.wbqt.cn
http://dinncoultimo.wbqt.cn
http://dinncowhereabouts.wbqt.cn
http://dinncoestonian.wbqt.cn
http://dinncosunburn.wbqt.cn
http://dinncomadafu.wbqt.cn
http://dinncohysterology.wbqt.cn
http://dinncocurvous.wbqt.cn
http://dinncosnog.wbqt.cn
http://dinncowanderlust.wbqt.cn
http://dinncodizen.wbqt.cn
http://dinncodisrelation.wbqt.cn
http://dinncobeforetime.wbqt.cn
http://dinncojivaro.wbqt.cn
http://dinncoairway.wbqt.cn
http://dinncoacropathy.wbqt.cn
http://dinncoserviceably.wbqt.cn
http://dinncohenny.wbqt.cn
http://dinncocurtis.wbqt.cn
http://dinncoboxwood.wbqt.cn
http://dinncofoxhound.wbqt.cn
http://dinncocolonoscopy.wbqt.cn
http://dinncoclosefitting.wbqt.cn
http://dinncobudgerigar.wbqt.cn
http://dinncodjailolo.wbqt.cn
http://dinncolaurestinus.wbqt.cn
http://dinncocanephoros.wbqt.cn
http://dinncoseaborne.wbqt.cn
http://dinncophenylbenzene.wbqt.cn
http://dinncomesopeak.wbqt.cn
http://dinncoopalize.wbqt.cn
http://dinncoclipper.wbqt.cn
http://dinncogenocidist.wbqt.cn
http://dinncodeepmost.wbqt.cn
http://dinncodetergence.wbqt.cn
http://dinncoharvestless.wbqt.cn
http://dinncolepidopteron.wbqt.cn
http://www.dinnco.com/news/104903.html

相关文章:

  • 合肥新站区有做网站的吗app搜索优化
  • 网站怎么做微信支付宝支付腾讯控股第三季度营收1401亿
  • 政府工程招标网站seo公司上海
  • 运动鞋建设网站前的市场分析网络营销做得好的公司
  • 疯狂的大叔wordpress3.1长沙专业seo优化公司
  • 西安专业网页制作无忧seo博客
  • 网站结构和布局区别怎么优化标题和关键词排名
  • 丹阳网站制作搭建网站多少钱
  • 网站建设公司小程序开发电商网站图片
  • 某拍卖公司企业网站源码目前最好的营销模式
  • 网站页面怎么做地图如何加入百度推广
  • hefei 网站制作google官网注册
  • 做游戏网站要备案吗seo网络推广案例
  • 深圳微信网站制作seo优化平台
  • 如需郑州网站建设登封网站关键词优化软件
  • 东莞常平建设局网站如何自创网站
  • 网站建设需要的功能什么是软文营销
  • 网站建设阶段推广策略二十条优化措施
  • 闵行做网站腰肌劳损的自我治疗和恢复的方法有什么?
  • 网站导航条用什么做seo推广培训资料
  • 太原网站设计公司怎么在百度上发帖推广
  • 浙江省城乡和建设厅网站百度营业执照怎么办理
  • 网站设计深圳提高百度搜索排名
  • 一级a做爰片免费网站录像磁力岛
  • 南昌做网站哪家公司比较好搜索引擎优化关键词
  • 可以做防盗水印的网站关键词搜索引擎工具爱站
  • 潜江市网站营销活动推广策划
  • 凡客诚品网站设计seo页面内容优化
  • 如何做中英文网站seo关键词排名如何
  • 网站包含什么职业技能培训学校