第二章:预处理
2.1文件包含
#include"my.h" 先当前目录后系统目录
#include<my.h> 先系统目录后当前目录
2.2宏定义
约定俗成都是大写
宏定义仅仅是简单宏替换,涉及到运算内容用括号()括起来。
2.3常见错误
带参数的宏和不带参数的宏,都要注意添加括号
2.4条件编译
#if xx
{}
#else
{}
#endif
#ifdef xxx
#endif
#ifndef xxx
#endif
#if defined (xxx) || defined (xxx)
#endif
2.5 #pragma
#pragma data // data为参数
2.5.1 常见参数
#pragma message(“消息”) 可以再编译的时候,通过message打印出相应的信息
#include<stdio.h>
#define STR
void main(int argc,char*argv)
{
printf(" 学习 #pragma 命令中 message 参数的使用 !\n");
#ifdef STR
#pragma message("STR 已经定义过了 ")
#endif
return;
}
#pragma once 用在头文件开始,保证头文件只编译一次
#pragma hdrstop 编译头文件到此为止,后面无需再编译了
#pragma pack() 修改字节对齐方式,默认4个字节
案列:#pragma pack(2)设置2个字节对齐
#pragma pack(push) 保存当前默认的字节对齐方式
#pragma pack(pop)恢复默认的字节对齐方式