
C/C++
文章平均质量分 59
Morrisss_
做更好地自己。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
引用与const(一)
翻看了几天李普曼大师的书后,不得不说,大师就是大师,对于细节的理解及解释都非常人可比。看完有关引用的一小部分知识,从前对引用的理解盲区渐渐被填补,现在本文中对一些简单的引用知识进行梳理记录。下面转入正题: 引用,即是为一个对象起了另一个名字,引用类型则是引用另一种类型。从定义,我们就可以了解到某些性质:1.既然是为对象起了另一个名字,那引用从某个角度上来看,就能够代表其所指的那个对象,如原创 2013-12-29 18:12:30 · 1019 阅读 · 0 评论 -
使用C/C++预定义宏进行调试跟踪代码
使用C/C++预定义宏进行调试跟踪代码概述 编写C/C++代码时,控制台调试/错误输出是比较常用而且主要的代码调试、排错方法。幸好各大编译器都支持一些预定义的宏可以方便我们在编写代码时,获取代码文件路径、名字,代码行号,编译时间等。 这里要说的主要是如下几个:__FILE__, __LINE__, __DATE__, __TIME__, __FUNCTION__.用途__FILE__:原创 2017-02-16 11:38:56 · 1901 阅读 · 0 评论 -
Makefile学习笔记(二)
Makefile学习笔记(二)概述 如果Makefile仅使用上一篇中记录的内容,也是可以完成编译安装大型开源项目的,只是Makefile编写起来会相当麻烦。所幸Makefile可以如shell脚本一般编写,只是附加了一些make内建的规则,这一篇则介绍一些让Makefile编写起来更简洁的方法。Makefile变量 Makefile编写过程中,在多个目标多个.o文件构建过程中,常常有一原创 2016-12-12 16:15:48 · 883 阅读 · 0 评论 -
Makefile学习笔记(一)
Makefile学习笔记(一)概述 Makefile在Linux环境开发中时常被用到,虽然有各种功能强大的IDE帮我们做了make这一步,但很多开源代码依旧还在使用makefile,makefile定义了整个项目的编译规则,了解makefile不仅可以加深对于源码结构的理解,也能从makefile文件中了解到源码之间的依赖关系以及编译次序。显式规则 Makefile中最常见的就是显式规则原创 2016-12-08 15:52:54 · 1011 阅读 · 0 评论 -
C/C++位域概念及位域并发修改问题
在计算机中,数据是以0和1两种形态进行表述的,而每个0和1都占据了一个位(bit)的大小,8个位(bit)可以组成一个字节(byte),一个字节就是计算机里数据类型的最小基本单位,如:char在32bit系统中大小为一个字节(byte)。但我们应该知道,虽然字节是最小的数据类型基本单位,但有时候我们或许是用不完这一个字节的,如:我们要表示一个开关量的时候,它就两种情况:0和1嘛,若我们申请了一个字原创 2014-03-16 13:33:37 · 2068 阅读 · 2 评论 -
GDB/LLDB调试指令
转自:http://lldb.llvm.org/lldb-gdb.htmlGDB TO LLDB COMMAND MAPBelow is a table of GDB commands with the LLDB counterparts. The built in GDB-compatibility aliases in LLDB are also listed. The f转载 2016-05-11 14:06:51 · 2018 阅读 · 0 评论 -
复杂指针声明解析
指针为C/C++提供了高效的操作,但指针也有很多恼人之处,稍稍不注意就可能出现大问题了,当然,本文不讨论那些裸指针之类的后续问题,我们需要先了解的应该是指针的声明!试想,如果连声明都无法看懂,又何谈使用呢? 可能有人会说指针的声明这么简单,怎么可能看不懂。那我们来看一个例子:int (*(*x)[10]) (); 看完它,不知各位是否还能继续说简单呢?下面我们就从基原创 2014-07-11 13:58:42 · 1212 阅读 · 0 评论 -
this与const成员函数不得不提二三事
在编写C++代码时,由于个人习惯的不同,成员函数定义时(若有成员的调用),有些人喜欢指明this指针,而有些人又不乐意写this。当然,提这个并不是要说个人习惯的好坏,不知你是否想过:使用this时,你并未对其进行定义,初始化等工作,为何我们依旧可以这样用呢?我们先来看一个例子:class Test {private: int m_val;public: Test() ...原创 2014-06-07 23:02:33 · 3672 阅读 · 2 评论 -
C++常量折叠
关于const的问题,貌似一直都原创 2014-05-08 20:10:38 · 1481 阅读 · 0 评论 -
C++内存对齐问题
在上一篇写道位域大小的时候,简短的提到了内存对齐的问题,而本文就将对内存对齐做个简单的说明,让各位脑中有个简单的概念。 说内存对齐,我觉得还是应该先说说为什么需要有内存对齐,大部分的参考资料都是如是说的:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、性能原因:数据结构(尤其是栈)应该尽可原创 2014-03-16 15:21:01 · 1036 阅读 · 0 评论 -
C++左值表达式
今天我们将要谈论的话题——左值表达式——相信不少人从各种途径中或许了解到一些,若是对这个概念还是模模糊糊,那接着看下去就对了,若是对这个概念十分清楚了,那就帮我找找问题,不吝赐教一下吧! 或许你是从书中了解到这个概念,有些老书可能会写左值表达式就是可以放在赋值运算符左侧作为左操作数的表达式,这种说法在早期或许是没什么问题的,毕竟早期的左值定义是基于赋值运算符需求的,它认为能作为赋值运算符原创 2014-03-06 21:39:32 · 5934 阅读 · 1 评论 -
using用途浅析
using namespace std; 在我们初识C++之时,我们应该是能经常看到这行代码的。书上说这样写能减少很多麻烦,好吧,在后来很长一段时间里估计大家都是这样做的。不管后来因为看了什么利弊减少了这样的写法,这些我们都暂且不提,本文的主题不是利弊,主题由此引入:一、引入名称空间或指明名称空间 如上,我们在代码中使用using可以引入名称空间,C++对原来的C库做了一些原创 2014-02-22 15:56:55 · 981 阅读 · 0 评论 -
C++动态申请二维数组
动态申请数组,在C/C++编程之中也算是比较常见的操作,动态申请一维数组相信列位也都能从书中找到,但对于动态申请二维数组,似乎书中甚少提及,不过没关系,看完本文之后我们对于这个操作也就能有个清晰的认识了。下面我们进入正文: 动态申请一维数组的方法很简单,我们都知道数组是一段连续的内存空间,所以只要我们拥有数组首地址,那我们就能对数组元素逐个访问,而数组名有时是被解释为数组首地址(指针)的原创 2014-01-14 12:16:57 · 3066 阅读 · 0 评论 -
引用之利
C++程序设计中,我们总是需要根据各种需要去设计各种不同的接口、类等,因此数据成员也就成了我们的常客,同时这也引发了这样的一个问题:私有or公有。对于这个问题,或许没有十分具有说服力的答案,各有各理,但这并不是今日讨论的焦点。今日主题在于:如何更好地处理私有与公有。 在使用STL中的vector时,我们能够清楚地感受到它的便利,也了解了它类似一个可变长的动态数组。vector提供了一个方原创 2014-01-08 15:44:45 · 888 阅读 · 0 评论 -
命名的强制类型转换
有些时候,我们需要在代码中执行与此类似的操作: int i, j; double k = i / j;但我们都知道,这样的操作得来的结果是不正确的,根据隐式类型转换规则,它得到的结果将是舍弃小数点后的部分再转换为double类型的值。由此,难道我们的代码中需要做相除操作的地方只能统一定义为浮点类型么?答案是否定的,我们还可以通过显式类型转换得到预期的结果!比如:原创 2014-01-04 14:32:50 · 964 阅读 · 0 评论 -
sizeof运算符
sizeof运算符,我们在很多地方都能看到它的身影,或许我们看到的更多的是诸如sizeof(int)这样的形式,但有时,我们也会看到sizeof p; 这样的形式,对于第一种,我们从字面都理解了它的意思,但第二种或许会让你有些犯迷糊,它是获取p的大小,还是p的类型的大小呢?对于这个问题,我们还是先对sizeof先有个清楚的认识吧,下面就开始对sizeof进行简单介绍: sizeof运算符原创 2014-01-03 20:50:08 · 1163 阅读 · 0 评论 -
指针与const
指针,在C/C++中无疑是个老生常谈的问题,也是个非常复杂的问题,其复杂程度我们可以从《征服C指针》和《C和指针》这两本专门介绍指针的好书中了解。本文主要是对指针与const的用法、联系做个简单介绍,更多深入的内容还是需要参考上述两书。好了,下面转入正题: 指针,与引用类型一般,都属于复合类型(基于其他类型定义的类型,此处的其他类型不仅仅指内建类型,也指类类型)。指针与引用也有某些相似点原创 2013-12-30 12:52:17 · 855 阅读 · 0 评论 -
引用与const(二)
因为有了const,所以当我们的程序中有多处需要一个常量时,我们可以使用const定义常量,而舍弃不好追踪的#define。而使用const定义的变量,它仍然是变量,只是不允许对其修改了。既然它是一个变量,一个实体,那我们就能够定义它的引用。好的,我们用如下代码对它及其引用进行定义: const int value = 0; int &refValue = value;原创 2013-12-29 19:57:13 · 975 阅读 · 0 评论 -
Makefile学习笔记(三)
Makefile学习笔记(三)概述 只依靠简单的变量和模式规则写一个复杂项目的Makefile是比较困难的,也不是不能写,只是源文件一多,模式规则的量就很大。庆幸的是,make提供了一些函数,可以很方便地写出复杂项目的Makefile。这里就来记录一下两个比较常用的make函数。make函数调用形式 make函数调用,与变量获取形式类似: $(func param),参数param根据所原创 2017-07-27 19:45:54 · 587 阅读 · 0 评论