- 博客(25)
- 收藏
- 关注
原创 结构体内存对齐和强制类型转换问题分析
最近两天复习c++的链表的时候发现了一个问题值得深思. 首先从一个现象上引出问题: 在我写线性表的链式存储的时候定义了几个结构体:(全部代码在这里) linklist.htypedef void LinkList;typedef struct _tag_LinkListNode{ struct _tag_LinkListNode * next;}LinkListNode;...
2018-04-28 12:38:25
1141
原创 C++之模板类_容器_迭代器_算法_GCC_make
站在编译器和C的角度剖析c++原理, 用代码说话类模板基础首先什么是模板: 模板就是把要处理的函数或类的类型参数化,表现为参数的多态性. 模板用来表现逻辑结构相同,但具体数据元素类型不同的对象的通用行为.函数模板我们在上一篇中已经说过了,所以自行回看一下. 我们这里讨论类模板: 类模板用于实现类所需数据的类型参数化. 我们先定义一个模板类:template<t...
2018-04-22 04:01:34
812
原创 C++之函数指针_回调函数_函数模板初探
站在编译器和C的角度剖析c++原理, 用代码说话函数指针C语言中通过typedef为函数类型重命名, 语法格式为:typedef type name(parameter list). 那么,什么是函数指针呢? 函数指针用于指向一个函数, 并且函数名是执行函数体的入口地址. 我们先回顾一下如何定义一个数组类型: typedef int (MyArrayType)[10];这...
2018-04-13 14:44:46
1392
转载 ioctl函数的作用
ioctl函数的作用特殊的read,write, 当你用read,write不能完成某一功能时,就用ioctl我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl,所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混了,这几天才弄明白它,于是在这里清理一下头脑。什么是ioctl。ioctl是设备驱动程序中对设备...
2018-04-07 05:03:04
5270
转载 联合体和结构体内存对齐分析
当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。在C Programming Language 一书中对于联合体是这么描述的: 1)联合体是一个结构; 2)它的所有成员相对于基地址的偏移量都为0; 3)此结构空间要大到足够容纳最”宽”的成员; 4)其对齐方式要适合其中所有的成员; 下面解释这四条描述: 由...
2018-04-07 02:48:15
447
转载 32/64平台下类型大小的总结
64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂);可以访问大型数据库。本文介绍的是64位下C语言开发程序注意事项32 位和 64 位C数据类型 上表中第一行的大写字母和数字含义如下所示: I表示:int类型 L表示:long类型 P表示:pointer指针类型 32表示:32位系统 64表示64位系统 如:LP64...
2018-04-07 02:34:20
294
转载 C/C++中数组和指针以及sizeof分析
转载自:https://blog.csdn.net/tianyue168/article/details/5781924#reply 对其中的一些小小错误进行了修正~~~感谢原主.#include <iostream.h> int main( int argc, char * argv[]) { char str[10]; ch...
2018-04-07 02:16:43
322
原创 c++之多态_虚函数_纯虚函数_抽象类专题
站在编译器和C的角度剖析c++原理, 用代码说话重写与重载在我们上一节中已经引入了多态,其中有一点就是必须是对父类虚函数的重写. 那么重写与重载有什么不同呢? 函数重载: 1. 必须在同一个类中进行 2. 子类无法重载父类的函数,父类同名函数将被名称覆盖 3. 重载是在编译期间根据参数类型和个数决定函数调用 函数重写: 1. 必须发生于父类与子类之间 2. 并且...
2018-04-06 07:23:26
410
原创 c++访问修饰符_继承_赋值兼容_多态初探
站在编译器和C的角度剖析c++原理, 用代码说话访问修饰符在我们引入继承之前,先来了解一些c++的访问修饰符: private: 修饰的成员变量成员函数只能在类的内部使用. public: 修饰的成员变量成员函数能在类的内部和外部随便使用. protected:修饰的成员变量和成员函数只能在类的内部使用. 在进入继承之前上面的铁律一定要记住, 或许会有疑问,说prot...
2018-04-03 04:28:01
388
原创 c++this_货物链表类_友元函数_操作符重载_const
站在编译器和C的角度剖析c++原理, 用代码说话this强化我们上一篇中最后提到了this指针的本质,这次我们稍微做一下回顾和强化:class Test{public: Test(int a, int b) //有参构造函数 { this->a = a; this->b = b; } int...
2018-03-31 06:33:04
366
转载 ">","2>&1"通俗易懂的剖析
转载自: https://blog.csdn.net/GGxiaobai/article/details/53507530在这两天准备RedHat的面试中偶然发现的一个知识点:我们在Linux下经常会碰到nohup command>/dev/null 2>&1 &这样形式的命令。首先我们把这条命令大概分解下首先就是一个nohup表示当前用户和系统的回话下的进城忽...
2018-03-31 03:58:33
189
原创 UNP_Chapter03_Socket详解与实现_笔记总结
***PAY A TRIBUTE TO W.Richard Stevens***Chapter03: Sockets Introduction3.1 简介从这里开始我们将接入了API的使用与原理,帮助我们了解这些API有助于开发的扩展性发展. 我们会先以今后几乎每个案例都会用到的结构体:socket地址结构体开始, 我们还会讲到地址转换函数inet...
2018-03-26 07:12:47
256
原创 c++之构造函数深究_匿名对象_new_this初探
站在编译器和C的角度剖析c++原理, 用代码说话默认构造函数我们先回顾一下构造函数, 当我们没有指定带参的构造函数时,编译器会给我们的类自动分配一个默认的无参构造函数.怼代码:class Test{public: Test(){ cout << "我是构造函数,自动被调用了" << endl; } ~Te...
2018-03-24 12:05:01
964
1
原创 APUE_Chapter03_文件IO_笔记总结
***PAY A TRIBUTE TO W.Richard Stevens***Chapter03: FILE I/O3.1 简介read, write, lseek, close, open这五个函数就能覆盖几乎大部分的Unix上的IO. 我们这章主要探讨的就是无缓存IO(unbuffered I/o), 相比于unbuffered IO就是第五...
2018-03-23 05:11:40
335
原创 c++之引用_重载_类的封装_构造函数初探
站在编译器和C的角度剖析c++原理, 用代码说话引用深入引入简单的介绍请参考引用初探这篇文章. 然后我们先进行普通引用的深入. 那什么是普通引用呢?就是基本数据类型的引用,而不是结构体或者类的引用,这个话题我们会单独专题讨论,这块儿是比较复杂的. 回归正题. 先上代码:int getAA1(){ int a; a = 10; return a;...
2018-03-22 06:55:56
213
原创 C++之C语法增强_寄存器_三目_引用初探
站在编译器和C的角度剖析c++原理, 用代码说话Hello world首先我们先引入无敌案例之hello world:#include <iostream>using namespace std;int main(void) { std::cout << "Hello, World!\n"; int i = 0; ci...
2018-03-20 12:24:46
408
原创 UNP_Chapter02_TransportLayer_笔记总结
***PAY A TRIBUTE TO W.Richard Stevens***Chapter01: 传输层协议: TCP, UDP, SCTP2.1 简介在这章我们主要探讨TCP/IP族中的协议,从编程者的角度去分析和理解如何去使用这些协议并且提供更为详细的描述. 这一张我们主要集中在传输层协议上: TCP, UDP和流控制传输协议(SCTP)...
2018-03-18 12:06:31
367
转载 awk通俗易懂的讲解
原文网址:http://www.cnblogs.com/276815076/archive/2011/12/05/2276625.htmlawk概述 为什么使用awk: awk 是一种程序语言。 它具有一般程序语言常见的功能。 因awk语言具有某些特点, 如:使用直译器(Interpreter)不需先行编译; 变量无类型之分(Typeless), 可使用文字当数组的下标 (Ass...
2018-03-18 02:39:10
2187
原创 APUE_Chapter02_UNIX实现标准_笔记总结
***PAY A TRIBUTE TO W.Richard Stevens***Chapter02: Unix实现标准2.1 简介在十九世纪八十年代针对层出不穷的Unix版本导致很多用户和美国政府开始制定标准化.在这次笔记中我们将主要讨论在过去的三十年间各种各样的标准. 有人会说学这些没用,但是当你对Unix编程有一定的了解后,你会发现这章很重要,...
2018-03-12 11:56:31
375
原创 LeetCode_04_BinarySearch笔记总结
摘要今天的题目也是二分查找,其中涉及到开方,找重复数,还有二分超找的一些变形,如找Peak,二分查找树问题正文1. LC69. Sqrt(x)题目: Implement int sqrt(int x). Compute and return the square root of x. x is guaranteed to be a non-negative integ...
2018-03-12 07:26:32
292
原创 LeetCode_03_BinarySearch笔记总结
摘要今天的题涉及到一个二分的边界问题的新套路,还处理一道经典的DP问题.正文1. LC274. H-Index题目: Given an array of citations (each citation is a non-negative integer) of a researcher, write a function to compute the researc...
2018-03-09 12:25:42
244
原创 UNP_Chapter01_Introduction_笔记总结
***PAY A TRIBUTE TO W.Richard Stevens***Chapter01: UNP入门介绍1.1 简介当我们写一个程序要想在网络中进行传输的时候,就必须考虑到需要一个协议能够对网络中传输的细节问题做统一的约束. 比如说,Web服务器一般都是一个永久运行,不down机或者说是一个守护进程在服务器端. 再比如我们所熟知的CS...
2018-03-08 11:20:38
310
原创 APUE_Chapter01_Introduction_笔记总结
***PAY A TRIBUTE TO W.Richard Stevens***Chapter01: Unix预览1.1 简介什么是操作系统,操作系统其实就是为程序的运行提供服务的平台. 其中包括比如打开文件,读写文件,分配内存,获取时间等等. Unix是很神奇也很深奥的系统,这章节带大家语言Unix中都有些什么,我们需要学习写什么. 所有在本章涉...
2018-03-07 05:38:55
268
原创 LeetCode_02_BinarySearch笔记总结
摘要今天主要涉及到的二分查找的一些变型形式,比如在树上,其中涉及到好些知识点,完全二叉树,二分搜索树,还有移位运算的原理等. 正文1. LC167. Two Sum II - Input array is sorted题目: Given an array of integers that is already sorted in ascending order, fi...
2018-03-07 03:59:34
255
原创 Leetcode_01_BinarySearch_笔记总结
摘要今天的题目全部都是Binary Search,其中35, 33, 81, 153, 154很经典,也有一定的模板可寻, 一定要敲熟练. 其中针对于二分查找中while循环的参数>=问题的讲解.正文1. LC29. Divide Two Integers题目: Divide two integers without using multiplication, ...
2018-03-05 12:47:30
305
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人