limesdr做4G基站 #pragma pack(1) 的意义是什么?
浏览量:1769
时间:2021-03-11 16:24:01
作者:admin
#pragma pack(1) 的意义是什么?
将结构的边界对齐设置为1字节,即所有数据连续存储在内存中。例如,您用C语言定义以下结构:struct s{char Chint I},然后在main函数中编写一个句子:printf(%d”,sizeof(struct s)),即输出结构s占用的字节数。您认为输出结果会是什么?我们知道char类型需要1个字节,int类型需要4个字节,所以输出结果是5?答案是否定的。你可以自己试试,输出是8。为什么?这是因为编译器优化了结构的存储,以使程序运行更快,减少CPU读取数据的指令周期。事实上,尽管第一个char成员最初只有一个字节,但它实际上占用了四个字节,因此第二个int成员的地址可以除以四。所以实际上是8个字节。并且#pragma pack(1)允许编译器强制连续排列结构数据。这样,sizeof(struct s)的输出是5。
limesdr做4G基站 portapack h2 hackrf portapack h2
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。