C/C++
文章平均质量分 85
Pigeon.C
小小的天,有大大的梦想,重重的壳裹着轻轻的仰望。
展开
-
端序问题分析
通信协议中的数据传输、数组的存储方式、数据的强制转换等这些都会牵涉到大小端问题。1、为什么会有大小端模式之分呢?在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。1个byte的存储不涉及端序,端序是字节之间,而不是bit之间。且地址不管是对于大小端工作的CPU来说都是一样的从小到大的地址增长。所以端序是指cpu读写内存时的高低顺序。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的int型。另外,对于位数大于8位原创 2021-09-09 09:30:22 · 168 阅读 · 0 评论 -
C的面相对象实现
多态性是面向对象程序设计的一个重要特征,利用多态性可以设计和实现一个易于扩展的系统。顾名思义,多态的意思是多种形态,在C++程序设计中,多态指的是:具有不同功能的函数可以用同一个函数名,这样可以用一个函数名调用不同内容的函数。C++的多态分两种:静态多态性和动态多态性。1. C++中的函数重载和运算符重载实现的多态性就属于静态多态,在程序编译时系统就能决定调用的是哪个函数,因此静态多态...转载 2019-08-29 23:10:09 · 330 阅读 · 0 评论 -
makefile多级目录递归
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/G_Caesar_/article/details/52353081先看一下make前后的目录结构对比makefile会自动生成需要的文件夹:各个模块下src目录下的obj、target目录各个模块下src/obj负责存...转载 2019-08-14 21:31:13 · 1141 阅读 · 0 评论 -
C BuildError
记录C常见的build error,一些拼写错误就skip了1.error: expected ‘)’ before ‘*’ token这个一般出现在函数定义或申明的地方,重点检查是不是包含了函数中用到的变量类型的声明文件,或是变量类型是否写错了。2.conflicting declarationhas a previous declaration as这个错误可能是因为头文件没...原创 2019-08-10 16:38:13 · 677 阅读 · 0 评论 -
C 编程修养
©著作权归作者所有:来自51CTO博客作者haoel的原创作品,如需转载,请注明出处,否则将追究法律责任原文地址:https://blog.51cto.com/haoel/124713感谢haoel分享,转载学习了。-------------------------------------------------------------------------------------...转载 2019-08-14 14:25:41 · 102 阅读 · 0 评论 -
C编译过程
锲子我们在各自的电脑上写下代码,得明白我们代码究竟是如何产生的,不想了解1,0什么的,但这几个环节必须掌握吧。我们的代码会经过这4个环节,从而形成最终文件,c语言作为编译语言,用来向计算机发出指令。让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。预处理, 展开头文件/宏替换/去掉注释/条件编译(t...转载 2019-08-13 17:47:13 · 157 阅读 · 0 评论 -
C 宏处理
1. 宏可以像函数一样被定义#define min(x,y) ((x) <(y)?(x):(y)) 但是在实际使用时,只有当写上min(),必须加括号,min才会被作为宏展开,否则不做任何处理,参数必须加括号,防止展开错误。2.#和###符号把一个符号直接转换为字符串,#define ToSTRING(x) #xconst char *str = ToSTRING( tes...原创 2019-08-04 17:08:59 · 481 阅读 · 0 评论 -
C++虚继承
C++中虚拟继承的概念为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决了二义性问题,也节省了内存,避免了数据不一致的问题。class派生类名:virtual 继承方式 基类名virtual是关键字,声明该基类为原创 2017-03-12 21:19:32 · 249 阅读 · 0 评论 -
C++拷贝构造函数
1.什么是拷贝构造函数 注意:这两个构造函数和我们自己定义的构造函数都是构成重载的关系,都是用来初始化我们创建的对象的,构成重载,一个执行都不会再执行另外的。不要觉得拷贝构造就不是构造函数。 当用一个同类对象初始化另一个一个同类的新对象时,调用的自然是拷贝构造函数。一个类如果没有定义拷贝构造函数,编译器自动会产生一个拷贝构造函数,内容是逐个复制对应的成员。 这一般能满原创 2017-03-12 21:17:52 · 231 阅读 · 0 评论 -
C++构造析构
1.构造函数-注意,面向对象的思想都是针对编译器来说的,由编译器为我们翻译成相应的程序,机器只能识别其自己的机器指令。-创建每一个对象时会自动调用一个成员函数,称为构造函数,也就是说每次定义一个对象时都会自动的默认运行这个函数,不写的话系统会自动的生成一个什么都不做的无参构造函数。函数名就使用类名,无返回类型。 -在类中的函数支持重载,就是说同名的函数会根据参数的不同编译器自动调用原创 2017-03-12 21:16:36 · 319 阅读 · 0 评论 -
C++虚函数实现原理
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。1.虚函数表对C++ 了解的原创 2017-03-12 21:15:24 · 221 阅读 · 0 评论 -
C++多态的实现
1.多态的概念可以理解为事物存在的多种体现形态,对各种对象发出同一种指令,各个对象能根据自身的情况作出相应的回应。 2.多态的实现条件存在继承,父子类之间的关系;存在重写;父类指针或引用指向子类对象,且调用重写函数。 3.三个概念重载:同一个类中,就是函数的作用域要相同;函数名字相同,参数不同;Virtual关键字可有可无,只要满足重载的要求即可了原创 2017-03-12 21:13:47 · 350 阅读 · 0 评论 -
C++强制类型转换
1.C类型转换C方式强制类型转换存在的问题:任意类型之间都可以进行转换,编译器很难判断其正确性在原码中无法快速定位所有使用强制类型转换的语句在程序设计中强制类型转换是不被推荐的,与goto语句一样,应该避免。static_cast reinterpret_cast const_cast reinterpret_cast static_cast 2.C++原创 2017-03-12 21:12:00 · 174 阅读 · 0 评论 -
C++ static关键字
1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include void fn();static int n; //定义静态全局变量void main(){ n=20; cout fn();}转载 2017-03-12 21:05:16 · 140 阅读 · 0 评论 -
C++ const关键字
const是一个C++语言的限定符,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。1. 修饰常量用const修饰的变量是不可变的,以下两种定义形式在本质上是一样的:const int a = 10;int const a = 10;2.转载 2017-03-12 19:46:13 · 154 阅读 · 0 评论