C语言
iteye_7202
这个作者很懒,什么都没留下…
展开
-
C语言中的static关键字
static在c里面可以用来修饰变量,也可以用来修饰函数。先看用来修饰变量的时候。变量在c里面可分为存在全局数据区、栈和堆里。其实我们平时所说的堆栈是栈而不是堆,不要弄混。int a ;int main(){ int b ; int c* = (int *)malloc(sizeof(int));}a是全局变量,b是栈变量,c是堆变量。static对全局变量的修饰,可以认为是...原创 2011-06-11 10:39:51 · 67 阅读 · 0 评论 -
C语言库——静态库、共享库
我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护。我们可以把他们制作成相应的功能函数,使用时直接调用就会很方便,还可以进行后期的功能升级。 例如我要在一段代码中多次交换两个变量的值,我可以在代码中多次写入i=x;x=y;y=i; ...原创 2011-06-11 15:45:42 · 99 阅读 · 0 评论 -
内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区
转自:http://www.cppblog.com/prayer/archive/2009/08/17/93591.html 一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化...原创 2011-09-01 17:23:56 · 72 阅读 · 0 评论 -
C++中的new VS C语言中的malloc
动作不同:在C++中,new一个对象时,程序完成对象的空间的分配的同时,构造函数也被调用,类似,delete一个对象时,对象的空间被释放的同时析构函数也被调用。在C中,malloc和free 则没有构造函数和析构函数被调用这个动作。当然,在没有特定的构造函数或析构函数时,C++也没有这个动作。关于重载:在C++中,对于任何非数组的空间分配,我们可以通过定义函数名相同...原创 2011-09-22 21:26:31 · 150 阅读 · 0 评论 -
malloc/free和new/delete的比较
转自http://www.cppblog.com/Lee/archive/2009/03/09/75990.html相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与 free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自...原创 2011-10-04 21:09:46 · 79 阅读 · 0 评论 -
容易混淆的const
关键字const并不能把变量变成常量!在一个符号前加上const只表示这个符号不能被赋值。也就是它的值对于这个符号来说是只读的,但它并不能防止通过程序的内部(甚至是外部)的方法来修改这个值。const最有用之处就是用它来限定函数的形参,这样该函数将不会修改实参指针所指的数据,但其他的函数却可能会修改它。 const int * limitp = &limit;...原创 2011-12-03 22:41:48 · 80 阅读 · 0 评论 -
static library和shared library
used in a static library:比如你用到这个库里的函数,这些函数代码(二进制代码)都拷贝到你的代码程序里来了,所以运行时可以直接找到这些函数,所以可以在没有这些库的机器上运行used in a shared dll:当你用到这些库里的函数时,这些函数代码并没有被拷贝到你的程序中来,而是把这些函数是属于哪个库及它们在库中的地址等信息记录下来。。。所以当你的程序运行时,当用到这些...原创 2013-06-18 10:59:27 · 1064 阅读 · 0 评论