|
编写嵌入式应用程序时经常会遇到一种情况,当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句,这时就需要使用条件编译。条件编译命令最常见的形式为:
|
|
|
|
其作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2,其中#else部分也可以没有。
|
|
|
在所有的预处理指令中,#pragma最为复杂,其作用是设定编译器的状态或者是指示编译器完成一些特定的动作,编译指示是机器或操作系统专有的,且对于每个编译器都是不同的。#pragma pack有多种形式,#pragma pack(n)表示变量以n字节对齐。
|
|
|
在网络程序中采用#pragma pack(1)(即变量紧缩),可以减少网络流量以及兼容各种系统,避免由于系统对齐方式不同而导致的解包错误。
|
|
|