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

简介

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

一般用法:

#pragama parameter

不同的parameter参数语法和意义不同。

1. #pragma message

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

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

2. #pragma pack

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

#pragma pack(4)

注意:GCC忽略此命令。

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

email: [email protected]

你可能感兴趣的:(linux,linux编程,c,编译器,编译)