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

网站建设教程赚找湖南岚鸿认 可济南媒体记者

网站建设教程赚找湖南岚鸿认 可,济南媒体记者,电商要怎么做起来,企业邮箱注册价格↑↑↑ 点击上方公众号名称关注#xff0c;不放过任何转变的机会。✎ 编 者 悟 语借口再小也会瓦解人的意志。文 章 导 读今天带大家用下函数指针#xff0c;然后将函数指针和函数参数封装到结构体中#xff0c;接着将数据用动态分配和静态分配的方式赋值给相应的函数#…      ↑↑↑ 点击上方公众号名称关注不放过任何转变的机会。✎ 编 者 悟 语        借口再小也会瓦解人的意志。文 章 导 读    今天带大家用下函数指针然后将函数指针和函数参数封装到结构体中接着将数据用动态分配和静态分配的方式赋值给相应的函数从而实现比较灵活的函数封装和调用的目的。1函数指针#include #include // 图省事函数定义在main函数前了int TestFun1(int val1, int val2){ return (val1 val2); }int TestFun2(int val1, int val2){ return (val1 - val2); }// 定义函数指针fun指向 int(*)(int,int)类型的函数int (*fun)(int val1, int val2); int main(int argc,char *argv[]){    // 指向要操作的函数并赋值参数 fun TestFun1; printf(testFun1 %d\n,(*fun)(2,1)); fun TestFun2; printf(testFun2 %d\n,(*fun)(2,1));    }    运行结果      关于int (*fun)(int,int)需要说明下其为定义一个函数指针fun它指向返回值为int两个参数类型都是int的函数。即fun指向的函数类型为 int(*)(int,int)也可以说fun是int(*)(int,int)型的指针。2结构封装函数指针及参数    1)动态分配方式调用#include #include // 指针fun指向 int (*)(int , int )的函数typedef int (*fun)(int val1, int val2); // 定义封装的函数及参数typedef struct{    int val1;    int val2;    fun function; }TestStruct_t;int TestFun1(int val1, int val2){    return (val1  val2);  }int TestFun2(int val1, int val2){ TestStruct_t t;     // 调用函数TestFun1与TestFun2参数交叉使用实际中根据需要来    t.function  TestFun1; t.val1 val1 1; t.val2 (*(t.function))(t.val1, val2); // t.val1 val2 val1 1 val2 return (t.val2 - t.val1); // t.val2 - t.val1 (val1 1 val2) - (val1 1) val2}// 定义testStruct_t类型的二维数组,动态分配时没用TestStruct_t testArray[2][3] {    {3,      2,     TestFun1},      {4,      5,     TestFun2}      };int main(int argc,char *argv[]){ // 动态分配空间    TestStruct_t *pMap  malloc(sizeof(testStruct_t));        // 给动态分配的空间赋值 pMap-val1 4; pMap-val2 6; // TestFun2 处理结构是获得参数val2的值只是为了演示没有啥实际意义    pMap-function  TestFun2;         // 指定参数获得指向函数的返回值   printf(%d,(*(pMap-function))(pMap-val1, pMap-val2)); }    运行结果      TestFun2利用封装的结构体类型引入TestFun1函数利用结构体分装方便切换函数。    2)静态分配方式调用#include #include // fun 指向 int (*)(int , int )typedef int (*fun)(int val1, int val2); // 定义封装的函数及参数typedef struct{ int val1; int val2; fun function; }TestStruct_t;int TestFun1(int val1, int val2){ return (val1 val2); }int TestFun2(int val1, int val2){    TestStruct_t t; // 调用函数TestFun1与TestFun2参数交叉使用实际中根据需要来 t.function TestFun1; t.val1 val1 1; t.val2 (*(t.function))(t.val1, val2); // t.val1 val2 val1 1 val2 return (t.val2 - t.val1); // t.val2 - t.val1 (val1 1 val2) - (val1 1) val2}TestStruct_t testArray[2][3] {    {3,      2,      TestFun1},      {4,      5,      TestFun2}      };int main(int argc,char *argv[]){ TestStruct_t *pMap; //利用数组的静态空间即可不用动态分配了 // testStruct_t *pMap malloc(sizeof(testStruct_t)); pMap testArray[1]; //将数组第二行的首地址赋给testStruct_t类型的指针pMap// 用数组中的值赋值不用下面的赋值了 /* pMap-val1 4; pMap-val2 6; pMap-function TestFun2;*/ printf(\nThe value of TestFun2 is:%d\n,(*(pMap-function))(pMap-val1, pMap-val2)); }    运行结果      可以看出在此实例中动态分配与静态分配主要差别在内存分配方式和赋值形式上。总结    总的来说不封装的函数指针调用函数还是比较清晰的但做比较大的项目的时候有时需要灵活的将函数及参数封装起来一是方便管理二是运用灵活。推荐文章宏分类的妙用(排版开始用模板)用Dev-C生成dll动态链接库文件并用C代码调用指定常量、变量、函数在存储空间的地址功能多样的预处理指令#pragmaprintf与#和##的魔幻组合扫码关注我们❖Game Over!
http://www.zqtcl.cn/news/858143/

相关文章:

  • 推广自己的网站需要怎么做wordpress 正计时
  • 做网站工资怎么样织梦的官方网站
  • python制作视频网站开发互动网站建设公司
  • 网站软文代写广西网站设计公司排行榜
  • c2c网站代表和网址mirages WordPress
  • 网站建设开发案例教程wordpress中国区官方论坛
  • 王晴儿网站建设做啊录音网站
  • 网站开发版本号正规的企业网站建设公司
  • 中国做网站正邦温州网站建设方案服务
  • 南通网站关键词优化wordpress做小程序
  • 上海企业网站seo多少钱做网站图片链接到天猫
  • 属于教育主管部门建设的专题资源网站是广西壮锦网站建设策划书
  • 云南网站制作一条龙网站建设公司对比分析报告
  • 手机网站客户端网站语言有几种
  • 做网站怎么选取关键词中企动力销售陪酒多吗
  • 新网站做内链雅虎网站收录提交入口
  • 简述建设一个网站的具体过程接做名片的网站
  • 怎样建立自己网站网站产品数据如何恢复
  • 用wordpress建立电商网站用Off做网站
  • 网站建设公司不赚钱ui设计软件培训学校
  • 网站项目策划书模板wordpress修改模版
  • 房地产手机网站模板电脑建立网站
  • 网站自适应手机代码网络服务机构的网站
  • 系统网站重庆智能建站模板
  • wordpress适合优化吗宝塔 wordpress优化
  • 怎么利用网站做外链接怎样做公司网站介绍
  • 广州网站优化渠道木门网站模板
  • 手机网站菜单设计wordpress加联系方式
  • 网站管理助手怎么使用多种郑州网站建设
  • 汉中网站建设费用外贸网站服务商