C++类构造函数初始化列表(转)
    
            
摘要:构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如: { public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值 CExample() { a=
        
阅读全文
 
        
            
    C++四种类型之间的转换
    
            
摘要:C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a。 C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。 const_cast,字面上理解就是去const属性。 static_cast,命名上理解是静态类型转换。如int转换
        
阅读全文
 
        
            
    内存布局:栈,堆,BSS段(静态区),代码段,数据段
    
            
摘要:简介 我们程序运行的时候都是放在内存里的、根据静态、成员函数、代码段、对象、等等、放在不同的内存分块里、大概分为5块 1 栈 2 堆 3 BSS段-全局区-(静态区) 4 代码段 5 数据段 栈 存放局部变量、临时变量、声明、返回值、指向堆对象的地址(指针)、总之存放一些小的东西、当不需要时候、栈会
        
阅读全文
 
        
            
    PIC和PIE
    
            
摘要:PIC指的是位置无关代码,用于生成位置无关的共享库,所谓位置无关,指的是共享库的代码断是只读的,存放在代码段,多个进程可同时公用这份代码段而不需要拷贝副本。库中的变量(全局变量和静态变量)通过GOT表访问,而库中的函数,通过PLT->GOT->函数位置进行访问。Linux下编译共享库时,必须加上-f
        
阅读全文
 
        
            
    static关键字(修饰函数、局部变量、全局变量)
    
            
摘要:在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c
        
阅读全文
 
        
            
    GNU C的定义长度为0的数组
    
            
摘要:在标准C和C++中,长度为0的数组是被禁止使用的。不过在GNU C中,存在一个非常奇怪的用法,那就是长度为0的数组,比如Array[0];很多人可能觉得不可思议,长度为0的数组是没有什么意义的,不过在这儿,它表示的完全是另外的一层意思,这个特性是不可移植的,所以,如果你致力于编写可移植,或者是稍稍需
        
阅读全文
 
        
            
    关于makefile的生成原理以及make相关命令的使用
    
            
摘要:一、生成configure过程中各文件之间的关系图 二、详细介绍 autoscan: 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 aclocal:根据已经安装的宏,用户定义宏和acinclude.m
        
阅读全文
 
        
            
    c++异常处理
    
            
摘要:c++异常处理,以前学生阶段在最开始学习c++的时候,感觉真的好陌生,怎么理解都不明白,后来在工作中,再次遇到这种问题,决定写篇博客记录一下; 注意是介绍,以及使用,关于底层怎么实现我并不关心,也没有精力去做这些事情; 记住一点,exception这个类,是所有异常的最根本的来源; 参考:www.c
        
阅读全文