C/C++
MoMing_2013
这个作者很懒,什么都没留下…
展开
-
C/C++与JAVA的内存划分
C/C++:1、栈区(stack):由编译器自动分配和释放 ,存放函数的参数值、局部变量的值等,甚至函数的调用过程都是用栈来完成其操作方式类似于数据结构中的栈2、堆区(heap) :一般由程序员手动申请以及释放, 若程序员不释放,程序结束时可能由OS回收 注意它与数据结构中的堆是两回事,分配方式类似于链表3、全局区(静态区)(static):全局变量和静态变量的存储是放原创 2013-04-01 20:36:40 · 748 阅读 · 0 评论 -
c/c++的可执行文件的入口
c/c++的可执行文件的入口:可执行程序的入口点是固定的,被保存在exe文件里面的,由crt决定。windows是WinMainCRTStartup和mainCRTStartup,gcc是_start,这些入口函数会默认的去调用main或WinMain,调用main是可以修改的。过程:在编译的最后一步链接阶段完成,windows调用link.exe,gcc调用ld,默认都会连接原创 2013-05-08 15:22:08 · 1461 阅读 · 0 评论 -
关于c/c++静态库和动态库的区别
关于c/c++静态库和动态库的区别:1 每个源文件(.c .cpp等)首先被编译为汇编,然后然后被编译为.o(或其他格式)的目标文件。如果是本文件已经实现了的函数,那么这个函数有个地址。没有实现的或者引用的别人的函数没有地址。2 静态库(.a)的生成:可以看作是多个.o文件的集合。内容可以由1到多个.o文件生产,或者从其他静态库.a文件拷贝而来。所以里面有可能有没有实现的函数。3 动态原创 2014-05-28 15:09:22 · 1324 阅读 · 0 评论