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

株洲网络公司-网站建设怎么样品牌网站建设小8蝌蚪

株洲网络公司-网站建设怎么样,品牌网站建设小8蝌蚪,静态网站添加到织梦,网站建设费用计入哪个会计科目函数回顾与后置返回类型 函数定义中如果有形参则形参应该有名字#xff0c;而不光是只有类型#xff0c;但是如果并不想使用这个形参#xff0c;换句话说这个形参并不在这个函数中使用#xff0c;则不给形参名也可以#xff0c;但在调用这个函数的时候#xff0c;该位置…函数回顾与后置返回类型 函数定义中如果有形参则形参应该有名字而不光是只有类型但是如果并不想使用这个形参换句话说这个形参并不在这个函数中使用则不给形参名也可以但在调用这个函数的时候该位置的实参是必须要明确给出的。 看看如下范例函数定义中的第二个形参只给出了类型并没有给出名字 但是在进行函数声明的时候是可以没有形参名的。虽然写形参名会帮助自己和其他读代码的人更好地理解代码但是编译器会忽略形参名。看如下函数声明的代码 上面这种写法叫作“前置返回类型”也就是说函数的返回类型位于函数声明或者函数定义语句的开头。 在C11中还引入了一种新的语法叫后置返回类型也就是在函数声明或定义中把返回类型写在参数列表之后对于有一些返回类型比较复杂的情形这种写法可能更容易让人看懂同时有一些比较特殊的场合还必须采用这种语法来书写后面会讲解到。请读者先知道有这样的写法即可当前不需要深究其他。看看如下范例 auto func(int,int) - int; //函数声明中的后置返回类型写法 auto func(int a,int b) - int //函数定义中的后置返回类型写法 {return 1; }总结一下“后置返回类型”的写法前面放置auto关键字表示函数返回类型放到参数列表之后而放在参数列表之后的返回类型是通过“-”开始的。此外补充一点函数书写时的说明一个函数内包含的代码不要太长不同的功能尽量分解到多个函数中去写一般一个函数内函数体建议包含几十到上百行代码尽量不要书写上千行代码函数体太过冗长也增加了他人阅读这段代码的理解难度和时间。 inline内联函数 先看一个范例 inline int myfunc(int testv) //函数定义这里必须加inline {return testv * (5 4) * testv; }注意上面这段代码在该函数定义之前增加了一个inline关键字增加了这个关键字的函数叫作内联函数。那么inline有什么作用呢 每个人都知道调用函数是要消耗系统资源的尤其是一些函数体很小但却频繁调用的函数调用起来很不划算因为要频繁地进行压栈、出栈动作以处理函数调用和返回的问题这也意味着要频繁地为它们开辟内存。为了解决这种函数体很小、调用又很频繁的函数所耗费的系统性能问题引入了inline关键字。该关键字的效果如下 1影响编译器在编译阶段完成对inline函数的处理系统尝试将调用该函数的动作替换为函数的本体不再进行函数调用。通过这种方式来提升程序执行性能。 2inline关键字只是程序员开发者对编译器的一个建议编译器可以尝试去做也可以不去做这取决于编译器的诊断功能也就是说决定权在编译器无法人为去控制。 3传统书写函数时一般将函数声明放在一个头文件中将函数定义放在一个.cpp源文件中如果要把函数定义放在头文件中那么超过1个.cpp源文件要包含这个头文件系统会报错但是内联函数恰恰相反内联函数的定义就放在头文件中这样需要用到这个内联函数的.cpp源文件都能通过#include来包含这个内联函数的源代码以便找到这个函数的本体源代码并尝试将对该函数的调用替换为函数体内的语句。 那么使用内联函数的优缺点是什么呢 用函数本体取代函数调用显然可以增加效率。但同时带来的问题是函数代码膨胀了。所以内联函数函数体要尽可能短小这样引入inline才有意义。请读者想一想调用一个函数时需要压栈开辟内存等动作假如这些动作需要花费1s的时间如果在这个函数中代码的执行需要花费1000s的时间那这个函数写成内联函数之后也就节省了1s的时间但是源文件代码却膨胀的很大。如果在多个地方调用这个函数那就相当于多个地方出现代码的重复膨胀代码在程序运行时也是要占用内存的因为内存中有代码段专门保存程序代码。 请注意 1编译器不同可能内联的结果也不同有些编译器很聪明优化好了只剩下一个结果有些编译器差了一点优化成一些表达式再差一点的编译器就真变成直接把函数体中的语句拿来替换到函数调用处了。 2inline函数尽量简单代码尽量少尤其是各种复杂的循环、分支、递归调用等尽量少出现在内联函数中否则编译器可能会因为这些代码的原因拒绝让这个函数成为内联函数。 3前面讲解constexpr函数时回忆一下给函数加constexpr的目的就是因为要将该函数用在常量表达式中。当时曾经说过这种constexpr函数函数体必须要写的特别简单如果写了某些多余的语句那么编译就会出错所以可以把constexpr函数看成是更严格的一种内联函数因为constexpr自带inline属性。 4内联函数有点像宏展开#define宏展开和内联函数有各种差别如类型检查等。
http://www.hkea.cn/news/14419076/

相关文章:

  • 温岭建设阳光网站西安建设工程信息网新平台
  • 网站建设主要做什么网站建设开票名称
  • 网站建设擎宇做扎染的网站
  • 网站如何seo推广云端视差wordpress企业主题破解版
  • 浙江鸿翔水利建设有限公司网站网游开发成本
  • 公司网站条形码如何做企业网站源码 一品资源网
  • 自己做网站好还是凡科360全景预览wordpress插件
  • 重庆赛区竞赛网站建设德州网站开发培训
  • 阿里巴巴做网站吗合肥网版制作
  • 低成本网站制作有关于做茗茶的网站
  • 做网站除了买域名还有什么wordpress环境
  • 公司网站简介WordPress怎么改文章颜色
  • 设计网站页面要多少钱泰安建材网站建设电话
  • wordpress站文章显示时分秒网页设计图片怎么居中
  • 网站建设为什么学flash做网站的任务书
  • 网站编辑专题怎么做网站建设问一问公司
  • 阜阳做网站的公司wordpress如何在底部设置备案
  • 机构编制网站建设seo优化什么意思
  • 临漳专业做网站一起作业网站英语作业怎么做
  • 学做美食的网站视频东莞网络营销销售
  • 如何提高外贸网站排名外贸平台有哪些国际
  • 青岛网站建设首选陕西省建设银行网站6
  • 宁波网站建设多少钱一个elementui 做的网站
  • 深圳网站设计|优选灵点网络wordpress创建网站
  • 论文中引用网站怎么写自己做的网站点首页出错
  • 广西省建设注册管理网站视频拍摄方法有哪些
  • 视频网站直播怎么做的知乎网页版
  • 做app和网站哪个比较好中国住房和城乡建设局官网
  • 网站主题旁边的图标怎么做的wordpress如何打开
  • excel中批量做网站的超链接网站开发哪里接业务