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

dedecms怎么部署网站免费网站友情链接

dedecms怎么部署网站,免费网站友情链接,网站首页的模块布局,火星人网页设计培训探秘 C 利器#xff1a;inline 与 nullptr 引言 在 C 的浩瀚海洋中#xff0c;有着许多实用且强大的特性#xff0c;它们如同夜空中闪烁的繁星#xff0c;照亮了开发者前行的道路。今天#xff0c;我们要深入探索其中两颗耀眼的星星#xff1a;inline 关键字和 nullptr …探秘 C 利器inline 与 nullptr 引言 在 C 的浩瀚海洋中有着许多实用且强大的特性它们如同夜空中闪烁的繁星照亮了开发者前行的道路。今天我们要深入探索其中两颗耀眼的星星inline 关键字和 nullptr 空指针常量。这两个特性看似简单却蕴含着巨大的能量能够帮助我们编写出更高效、更安全的代码。 一、inline 关键字速度与效率的魔法 1.1 函数调用的开销 在 C 中函数调用是一项常见的操作。当我们调用一个函数时程序会进行一系列的操作比如保存当前的执行上下文如寄存器的值、跳转到函数的入口地址、执行函数体中的代码最后再返回到调用点并恢复执行上下文。这些操作会带来一定的时间和空间开销尤其是对于一些短小的函数这种开销可能会显得比较明显。 举个例子我们有一个简单的函数用于计算两个整数的和 收起 cpp int add(int a, int b) {return a b; }当我们多次调用这个函数时每次调用都会产生上述的开销。 1.2 inline 的作用 inline 关键字就是为了解决这个问题而引入的。当我们在函数定义前加上 inline 关键字时就相当于告诉编译器“嘿这个函数比较小你可以尝试把它的代码直接嵌入到调用它的地方而不是进行常规的函数调用。” 我们将上面的 add 函数改成内联函数 收起 cpp inline int add(int a, int b) {return a b; }当编译器遇到 add 函数的调用时比如 int result add(3, 4);它可能会直接将 add 函数的代码展开就像这样 收起 cpp int result 3 4;这样就避免了函数调用的开销提高了程序的执行速度。 1.3 使用 inline 的注意事项 只是建议需要注意的是inline 只是给编译器的一个建议而不是强制要求。编译器会根据函数的复杂度、代码大小等因素来决定是否真正将函数内联展开。如果函数体比较复杂编译器可能会忽略 inline 关键字。定义和声明内联函数的定义通常要放在头文件中。因为编译器需要在调用点看到函数的完整定义才能进行内联展开。如果只在头文件中声明了内联函数而在源文件中定义可能会导致内联失败。代码膨胀过度使用内联函数可能会导致代码膨胀。因为每次调用内联函数时都会将函数代码复制到调用点这会增加代码的体积。所以只有对于那些短小、频繁调用的函数使用 inline 才是比较合适的。 二、nullptr空指针的新选择 2.1 传统空指针的问题 在 C 的早期版本中我们通常使用 NULL 来表示空指针。NULL 实际上是一个宏在不同的编译器中它可能被定义为 0 或者 (void*)0。这种定义方式会带来一些问题尤其是在函数重载的情况下。 看下面的代码示例 收起 cpp #include iostreamvoid func(int num) {std::cout Called with int: num std::endl; }void func(char* ptr) {std::cout Called with char*: (ptr ? non - null : null) std::endl; }int main() {func(NULL); // 这里会调用哪个函数呢return 0; }由于 NULL 可能被定义为 0编译器在处理 func(NULL) 时会优先匹配参数为 int 的函数而不是我们期望的 char* 函数。这就导致了代码的行为不符合我们的预期。 2.2 nullptr 的引入 为了解决上述问题C11 引入了 nullptr 关键字。nullptr 是一个空指针常量它的类型是 std::nullptr_t可以隐式转换为任何指针类型但不会与整数类型混淆。 我们将上面的代码修改为使用 nullptr 收起 cpp #include iostreamvoid func(int num) {std::cout Called with int: num std::endl; }void func(char* ptr) {std::cout Called with char*: (ptr ? non - null : null) std::endl; }int main() {func(nullptr); // 这次会正确调用参数为 char* 的函数return 0; }当我们使用 nullptr 调用 func 函数时编译器会正确地匹配参数为 char* 的函数避免了传统空指针带来的问题。 2.3 使用 nullptr 的好处 类型安全nullptr 具有明确的类型能够避免与整数类型的混淆提高了代码的类型安全性。代码清晰使用 nullptr 可以让代码更加清晰易读明确表达了这是一个空指针的意图。 三、总结 inline 关键字和 nullptr 都是 C 中非常实用的特性。inline 能够帮助我们提高程序的执行效率尤其是对于短小频繁调用的函数而 nullptr 则解决了传统空指针在类型安全方面的问题让我们的代码更加健壮。在日常的 C 编程中合理使用这两个特性能够让我们编写出更加高效、安全、易读的代码。 希望通过这篇文章你对 inline 和 nullptr 有了更深入的理解快去在你的代码中试试它们的威力吧 你在使用 inline 或者 nullptr 的过程中遇到过什么有趣的问题吗欢迎在评论区留言分享你的经验和想法
http://www.hkea.cn/news/14491121/

相关文章:

  • 孝感网站开发优搏快广州seo推广系统
  • dw做网站链接电脑如何下载网页视频文件
  • html网站首页设计注册城乡规划师成绩查询2021
  • 淘宝客网站设计wordpress区别
  • 做网站架构的软件.net空网站做九九乘法表
  • 金融网站设计欣赏在线教育网站建设公司
  • 上海网站建设zj kt网站的要素是什么
  • 做的新网站网上搜不到阳山做网站
  • 桂林网站建设服务平面设计是什么专业学的
  • 为什么网站的备案号在备案网站查询不到WordPress阿里云超标
  • 潍坊网站优化排名百度推广收费多少
  • 如何做防水网站青岛宣传片制作公司
  • 中企动力免费做网站wordpress模板怎么写
  • 网站建设推广选stso88效果好项目外包和人力外包的区别
  • 网站名称和网址个人网页设计模板网站
  • 网站建设代理哪个好做民宿要给网站多少钱
  • 做网站软件下载seort什么意思
  • 哪里有零基础网站建设教学建设网站的视频视频
  • 南京企业网站搭建Cocos做网站
  • 网站建设公司网站源码小型企业网站开发
  • 百度网站大全旧版东莞房价2021最新价格走势
  • 为什么电脑打开那个做网站都是那一个网站 mvc 设计
  • 做外贸有免费的网站吗昆山企业网站制作公司
  • 湖州建设培训入口网站家教补习中心网站建设
  • 广东网络公司网站wordpress iis 404
  • 做网站公司常熟免费建立个人网站凡科
  • 网站开发要怎么学做排版的网站
  • 经营网站需要什么费用网站seo描述
  • 创新的南昌网站设计wordpress json插件安装
  • 马鞍山哪里做网站怎么给网站做logo