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

做一个静态网站多少钱网站建设优化托管

做一个静态网站多少钱,网站建设优化托管,中信建投证券有限责任公司,电子商务网站建设一般流程文章目录 #x1f95e;内联函数#x1f35f;1、C语言实现宏函数#x1f35f;2、内联函数的概念#x1f35f;3、内联函数的特性#x1f35f;4、总结 #x1f95e;内联函数 #x1f35f;1、C语言实现宏函数 #x1f970;用C语言先来实现普通的… 文章目录 内联函数1、C语言实现宏函数2、内联函数的概念3、内联函数的特性4、总结 内联函数 1、C语言实现宏函数 用C语言先来实现普通的Add函数看一下 int Add(int left, int right) {return left right; }int main() {int ret 0;ret Add(1, 2);return 0; }转到反汇编来看一下 可以看到编译器为了实现一个简单的相加函数Add函数体内需要执行的汇编指令要很多而且为了调用函数还要执行指令跳转(并且要在栈区上为函数开辟栈帧空间)如果Add函数被重复大量地使用则会消耗很大一部分系统性能。因此C语言中为了提高程序的运行效率对于类似的简单函数(注意仅限于非递归且简短的函数)我们常使用宏来替代 实现一个Add宏函数 //实现一个Add的宏函数 #define Add(x, y) ((x)(y))int main() {int ret 0;ret Add(1, 2);cout ret endl;return 0; }宏的作用相当于代码语句的替换上面代码段中的宏是把Add(x, y)形式的语句替换成((x)(y))这种替换的过程是在预处理的阶段完成的 使用宏替换后再次转到反汇编来看一下 可见使用宏代替那些简短的非递归(且会被大量使用)的函数可以一定程度上提高程序的性能 但是由于宏的本质是代码替换所以有时候会让代码变得混乱难以维护而且宏本身的使用容易出错C就提供了一种类似的语法机制 — “内联函数”来代替宏 2、内联函数的概念 以 inline关键字修饰的函数叫做内联函数编译时C编译器会在调用内联函数的地方(call指令处)将被调函数展开成一系列汇编指令并在主函数的栈帧空间中实现被调函数的功能(类似于宏替换但不是在预处理的阶段完成的)系统无需为被调函数建立函数栈帧没有函数调用建立栈帧的开销内联函数提升程序运行的效率 用之前的例子举例说明使用inline修饰Add函数前 使用inline修饰Add函数后 可见系统并没有为inline Add函数建立函数栈帧也没有执行任何指令跳转程序性能有所提升。(但是注意Add函数的函数体(包含其指令段)依然被原模原样地存放在只读常量区只是编译器在编译时将函数体中必要的指令“搬”到了主函数的指令段中取代了call指令)。 3、内联函数的特性 inline是一种以空间换时间的做法如果编译器将函数当成内联函数处理在编译阶段会用函数体替换函数调用 缺陷可能会使目标文件变大(汇编指令是要占内存的编译器用一系列指令段替换call指令会使文件的总指令条数增加) 优势少了调用开销提高程序运行效率 inline对于编译器而言只是一个建议而不是要强制执行的命令不同编译器关于inline实现机制可能不同一般建议将函数规模较小(即函数不是很长具体没有准确的说法取决于编译器内部实现)、不是递归、且频繁调用的函数采用inline修饰否则编译器会忽略inline特性。下图为《Cprime》第五版关于inline的建议 3. inline内联函数不建议声明和定义分离只用定义即可定义本身也是一种声名分离会导致链接错误。因为inline被展开因为使用inline调用函数时call指令被替换了没有call指令链接器就链接不到函数体的指令段了 // F.h #include iostream using namespace std;inline void f(int i);// F.cpp #include F.hvoid f(int i) {cout i endl; }// main.cpp #include F.hint main() {f(10);return 0; }4、总结 宏的优缺点 优点 1.增强代码的复用性 2.没有类型的严格限制 2.提高性能 缺点 1.不方便调试宏因为预编译阶段进行了替换 2.导致代码可读性差可维护性差容易误用语法坑很多 3.没有类型安全的检查 内联函数的优缺点 优点 1.inline定义的内联函数函数代码被放入符号表中在使用时进行替换像宏一样展开不需要建立栈帧效率很高 2.类的内联函数也是函数。编绎器在调用一个内联函数首先会检查参数问题保证调用正确像对待真正函数一样消除了隐患及局限性 3.inline可以作为类的成员函数也可以使用所在类的保护成员及私有成员 缺点 1.内联函数以复制为代价活动产函数开销 2.如果函数的代码较长使用内联将消耗过多内存较长不建议使用 3.如果函数体内有循环那么执行函数代码时间比调用开销大有循环不建立使用 这期内容比较容易理解希望烙铁们能理解消化有所收获哦 总结 以上就是 【C】内联函数 的全部内容啦 本文章所在【C初阶】专栏感兴趣的烙铁可以订阅本专栏哦 前途很远也很暗但是不要怕不怕的人面前才有路。 小的会继续学习继续努力带来更好的作品 创作写文不易还多请各位大佬uu们多多支持哦
http://www.hkea.cn/news/14366506/

相关文章:

  • 京东商城网站首页dw网页制作图片
  • 一般购物网站有哪些模块龙岩亿网行
  • 做南美生意做什么网站好网站集约化建设力度
  • Wordpress. Redis网站内容优化技巧
  • 三里河网站建设公司网站后期维护
  • 做网站联系我们在那个板块里面长沙哪里有创建网站的公司
  • 热门课程自己做网站自做网站
  • 网站编辑没有经验可以做吗wordpress优化加速插件
  • 青海城乡建设厅网站备案 网站名称 怎么改
  • 网站图片处理方案做网站比较好的公司有哪些
  • 网站标题如何书写推广英文
  • 地方门户网站的分类渐江建工水利水电建设有限公司网站
  • dw做的网站成品大连做网站的企业
  • 建设银行客户投诉网站集团网站建设效果
  • 建设银行网站怎么登陆不游戏网站设计书
  • 公众号里链接的网站怎么做的济南网站开发公司排名
  • 做盗版网站网站备案有幕布
  • 建设网站企业登录廊坊网站建设佛山厂商
  • 学习网站建设建议调查问卷网址的二级域名
  • 网站开发项目团队人员把网站放在虚拟主机上 怎么进入网站后台
  • 友情链接网站免费最近国内重大新闻事件
  • 酒店网站的规划与建设网站建设毕业设计引言怎么写
  • 做网站建设一般多少钱网站广告位制作
  • 柳州游戏网站建设代码生成器手机版
  • 东莞网站建设-信科网络网站建设经验与教训
  • 手机qq浏览器网页安全防护怎么关防控政策优化
  • 网站开发的经验上海大型企业名单
  • 花桥网站制作国内十大搜索引擎网站
  • 网站后台验证码错误十大少儿编程教育品牌
  • 昆明网站建设咨询网络服务器忙