C语言
文章平均质量分 92
double_qiang
这个作者很懒,什么都没留下…
展开
-
__attribute__((packed))详解
1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关,gcc编译器不是紧凑模式的,我在windows下,用vc的编译器也不是紧凑的,用tc的编译器就是紧凑的。例如:在TC下:struct my{ char ch; int a;} sizeof(in转载 2017-04-08 13:42:16 · 460 阅读 · 0 评论 -
C语言复杂声明
问题1:声明与函数 有一段程序存储在起始地址为 0的一段内存上,如果我们想要调用这段程序,请问该如何去做? 答: (*(void (*)( ) )0)( )。让我们从两个不同的途径来详细分析这个问题。分析: 首先,最基本的函数声明: void function (paramList); 最基本的函数调用: function(paramList); 鉴于问题中的函数没有参数,函数调...转载 2018-03-05 15:01:14 · 541 阅读 · 0 评论 -
bss、data、rodata和text
在ELF格式的可执行文件中,全局内存包括三种:bss、data和rodata。其它可执行文件格式与之类似。了解了这三种数据的特点,我们才能充分发挥它们的长处,达到速度与空间的最优化。 1、bss(Block Started by Symbol) bss是指那些没有初始化的和初始化为0的全局变量和静态变量,bss类型的全局变量只占运行时的内存空间,而不占文件空间。 另外,大多数...转载 2018-05-30 20:10:31 · 2310 阅读 · 0 评论 -
LCM通信模块简介
1. LCM通信模块简介 LCM(Lightweight Communications and Marshalling)是一套用于消息传递和数据编组的库和工具的集合,旨在为实时系统提供高带宽和低延迟的消息传递的能力。它提供了一个发布/订阅消息传递模型以及为各种编程语言的应用程序自动生成编/解组代码。 LCM允许多个进程以安全和高性能地方式进行消息的交换。消息是LCM通信的基本单元,开发者可将消...原创 2018-07-26 16:14:10 · 17766 阅读 · 0 评论