C++
super_man_风清扬
上善若水,人淡如菊!-王威
展开
-
C/C++的内存机制
一.首先, 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放 4.专门放字符串常量的地方。- 程序结束释放 5 程序代码区原创 2016-10-13 09:27:16 · 697 阅读 · 0 评论 -
C进阶指南(1):整型溢出和类型提升、内存申请和管理(转)
转自:http://blog.jobbole.com/72830/ C语言可用于系统编程、嵌入式系统中,同时也是其他应用程序可能的实现工具之一。 当你对计算机编程怀有强烈兴趣的时候,却对C语言不感冒,这种可能性不大。想全方位地理解C语言是一件极具挑战性的事。 Peter Fačka 在2014年1月份写下了这篇长文,内容包括:类型提升、内存分配,数组转指针、显式内联、打桩(interposit原创 2016-11-04 15:06:49 · 756 阅读 · 0 评论 -
C进阶指南(2):数组和指针、打桩(转)
转自:http://blog.jobbole.com/73094/ 三、指针和数组 尽管在某些上下文中数组和指针可相互替换,但在编译器看来二者完全不同,并且在运行时所表达的含义也不同。 当我们说对象或表达式有类型的时候,我们通常想的是定位器值的类型,也叫做左值。当左值有完全non-const类型时,此类型不是数组类型(因为数组本质是内存的一部分,是个只读常量,译者注),我们称此左值为可修改左原创 2016-11-04 15:08:11 · 895 阅读 · 0 评论 -
C进阶指南(3):显式内联、矢量扩展、C的逸闻轶事(转)
转自:http://blog.jobbole.com/73095/ 五、显式内联 (想让)函数代码被直接集成到调用函数中,而非产生独立的函数目标和单个调用,可显式地使用 inline 限定符来指示编译器这么做。根据 section 6.7.4 of C standard inline 限定符仅建议编译器使得”调用要尽可能快”,并且“此建议是否有效由具体实现定义” 要用内联函数优点的最简单方法原创 2016-11-04 15:09:50 · 373 阅读 · 0 评论 -
const常量与define宏定义的区别
#define RADIUS 100; const float RADIUS = 100; (1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。 (2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。 (3) 存储方式不原创 2016-11-21 14:53:31 · 472 阅读 · 0 评论