linux-c编程-编译预处理(#pragma预处理分析)

简介

#pragma是编译器指示字,用于指示编译器完成一些特定的动做。#pragma所定义的不少关键字是编译器和操做系统特有的,而且在不一样的编译器间不可移植。但对于不能识别的#pragma命令预处理器将忽略。ui

通常用法:操作系统

#pragama parameter

不一样的parameter参数语法和意义不一样。版本控制

1. #pragma message

message 参数在大多数的编译器上都有类似的实现,用于在编译时输出消息到编译输出窗口中,能够用于提示编译版本,用于版本控制。code

注意:message是VC的特有的编译器指示字,GCC将其忽略。内存

2. #pragma pack

pack 参数来指定编译器使用内存对齐的规则,能够修改编译器默认的对齐规则。si四字节对齐命令以下:编译器

#pragma pack(4)

注意:GCC忽略此命令。编译

因结构体变量须要进行字节对齐,里面还有未知的“坑”内存(pad),因此不能直接使用memcmp进行判断。class

email: MingruiZhou@outlook.comemail