logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

#pragma pack(1)

编译器为了让程序跑得跟快,减少CPU读取数据的指令周期,对结构体的存储进行优化。实际上第一个char型成员虽然本来只有1个字节,但实际上却占用掉了4个字节,为的是让第二个int型成员的地址能够被4整除。因此实际占用的是8个字节。而#pragma pack(1)让编译器将结构体数据强制连续排列,这样的话,sizeof(struct s)输出的结果就是5了。设置结构体的边界对齐为1个字节,也就是所有数

#c语言#开发语言
linux 发送原始数据包

int packet_socket= socket(PF_PACKET, socket_type, protocol);描述:packet socket用于从设备驱动层接收或发送原始数据包,可用于用户在物理层以上构建自己的通信协议.socket_type 可为: SOCK_RAW/或SOCK_DGRAM.其中SOCK_RAW可用于发送原始数据包,此时可自定义数据链

linux中g++找不到路径的问题

在linux中使用eclipse新建了工程,gcc和g++编译器已经正确定位路径,但是编译时报错说g++找不到路径,终端输入gcc -v,会给出gcc的版本,输入g++ -v,却提示没有g++,处理方法是:保证linux联网,终端输入“sudo apt-get install build-essential” //可以连同gcc和g++环境一同安装,因为build-essential依赖于gc

到底了