
随笔
凡人歌_不负韶华
人因梦想而伟大
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
结构体的大小计算规则
一、结构体内存实际对齐单位(自定义)计算 (1) CPU周期 WIN (win32/x64) vs qt 默认8字节对齐 Linux 32位 默认4字节对齐,64位默认8字节对齐 (2) 结构体最大成员(基本数据类型变量(包括嵌套的内部结构体中的基本数据类型变量)) (3) 预编译指令#pragma pack(n)手动设置 n–只能填1 2 4 8 16 上面三者取最小的 , 就是实际对齐单位(这里的“实际对齐单位”是我为了方便区分定义的) 二、除结构体的第一个成员外,其他所有的成员的地址相对原创 2020-05-15 18:29:34 · 1344 阅读 · 0 评论 -
程序的内存布局
一、应用程序内存空间默认的区域 现在的应用程序都运行在一个内存空间里,以4g内存为例,大部分的操作系统都将4g内存空间的一部分挪给内核调用,应用程序无法直接访问这一段内存,这一部分内核地址成为内核空间,windows默认会将2g高地址空间分配给内核,而linux默认将高地址的1g空间分配给内核,用户使用剩下的2g、3g空间成为用户空间,用户空间一般有如下默认区域: 1.栈:栈用于维护函数调用的上下...原创 2019-04-29 11:08:57 · 594 阅读 · 0 评论 -
运行时入口函数及程序运行步骤
一、运行时概念 任何一个c/c++程序,它的背后都要有一套庞大的代码来支撑,以使得该程序正常运行,这套代码至少包含入口函数及其所依赖的函数构成的集合,当然它还理应包含各种标准库函数的实现,这样一个代码集合称之为运行时库,而c语言的运行时库即被称为c运行时库,那么对于VC++编译器来说,与C语言类似,C++也定义了自己的标准库,同时提供相关支持库,称为C++运行时库,由于C++对C的兼容性,C++标...原创 2019-05-09 11:03:54 · 1141 阅读 · 0 评论 -
C/C++运行时的种类
一、C/C++运行时的种类 VC++完美的支持C和C++标准,因此也就按照C和C++标准定义的函数原型实现了上述运行时库。为了方便有不同需求的客户使用,VC++分别实现了动态链接库DLL版本和静态链接库LIB版本。同时为了支持程序调试且不影响程序的性能,又分别提供了对应的调试版本。调试版本的名称在Release版本名称后添加了字母d 1,C运行时的种类 对于C运行时库CRT,VC6.0、VC200...原创 2019-05-09 11:50:43 · 834 阅读 · 0 评论 -
C语言之断言
C语言的那些小秘密之断言 1.断言摘要 在使用C语言编写工程代码时,我们总会对某种假设条件进行检查,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。它可以快速发现...原创 2019-05-07 11:57:24 · 2646 阅读 · 0 评论