C++
文章平均质量分 82
老胡写代码
这个作者很懒,什么都没留下…
展开
-
C++中的Enum与Enum class
大家都知道在C++中有两种声明Enum的方式,分别是enum和enum class。enum在古老的C++98里面就存在,而enum class从C++11开始进入大家视野,那它们之间有什么不同的地方吗,为什么要新加一个enum class?一般来说它们在三个方面有区别,今天就让我们来看看吧。它们声明的枚举变量所影响的范围不同enmu class 又被叫做scoped enum。顾名思义,enum class中声明的枚举值不会造成变量污染,举个例子 enum enumFruit { APPL原创 2022-05-14 14:54:23 · 1967 阅读 · 0 评论 -
C++中的间接宏函数
宏函数对于每个C++程序员都决不陌生,就算是初出茅庐的C++程序员也知道如何定义、使用宏函数。 但是当初学者看到类似于以下这种宏函数嵌套的时候,可能还是会比较嘀咕,#define CONVERTSTR(x) #x#define CONVERTSTR2(x) CONVERTSTR(x)第二个宏函数所做的事情不就是再一次调用上面的宏函数吗,这难道不属于画蛇添足吗?这样做有什么意义呢?别急,我们慢慢来捋一下。 了解#和##要想熟练的写出宏函数,了解其中的操作符必不可少,在预编原创 2021-04-01 22:57:47 · 142 阅读 · 0 评论 -
一个C++引用库的头文件预编译陷阱
写在前面老胡最近在工作中,有个场景需要使用一个第三方库,引用头文件,链接库,编译运行,一切都很正常,但是接下来就遇到了一个很诡异的问题,调用该库的中的一个对象方法为对象修改属性的时候,会影响到对象的另外一个属性,当时百思不得其解,直呼灵异事件。但后面静下心来细细看了一下代码和各种配置,发现了问题所在,现在把这个问题分享在这里,希望大家在以后的工作中如果遇到了类似的情况知道应该如何处理。 场景还原库当时引用的是一个第三方的静态链接库,场景非常简单,在项目中包含头文件,链接器指定路径和静态原创 2021-03-24 22:59:48 · 239 阅读 · 0 评论 -
谈谈C++中的数据对齐
struct A{ char c1;};struct B{ int i1;};struct C{ char c1; int i1;};已有struct大小猜测,引出疑问讲解为何会有这种情况,蒸屉一样,解释上面的大小问题为什么需要关注对齐,底层开发我们才会关注对齐,为什么呢,因为对齐可以节约空间演示如何节约空间...原创 2021-03-14 15:54:19 · 1607 阅读 · 0 评论 -
在C++中实现aligned_malloc
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-03-08 20:35:11 · 2406 阅读 · 0 评论 -
C++中的extern
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-02-09 16:49:23 · 38608 阅读 · 2 评论 -
C++中指针与Const
众所周知,C++中指针是C++强大力量的来源之一,也是比较容易让初学者迷惑的地方,如果再加上const修饰符,可能大家就更感觉头晕了,const放在*的前面和放在后面的区别是什么,在函数参数传值的时候,哪种const需要我们注意?在函数重载的时候,哪种const又会被认为是不同的函数参数?让我们简单来看看吧。Const在指针的不同位置首先让我们来看看Const在不同的位置下面对指针的影响。i...原创 2019-04-14 13:34:52 · 330 阅读 · 0 评论