学习笔记-预编译(if类和pragma warning)

47 阅读1分钟

if类

if(包括elif,else)

例1

条件为常量表达式,包含宏、算术运算、逻辑运算
#if 条件1
语句1        //条件1满足执行
#elif 条件2
语句2        //条件1不满足,条件2满足执行
#else 
语句3        //条件1,2都不满足执行
#endif      //结束if作用域

ifdef 如果宏已经定义,则编译下面代码

例2

//_MSC_VER为MSVC编译器版本,内置宏
#ifdef _MSC_VER //如果_MSC_VER被定义,则执行语句1
语句1
#endif

ifndef 如果宏没有定义,则编译下面代码

例3

//常用格式如下
//作用为如果头文件没被编译则编译头文件,头文件已经被编译则不再执行下面语句
//这样避免了多个文件包含同一个头文件时反复编译该文件的问题
#ifndef A_H 
#define A_H
 代码块1
 #endif

#endif 结束if类的作用域,编译时每一个if类最好搭配一个#endif

pragma warning

//常用格式如下
//作用为编译代码块2时4244警告不会出现,4385 仅出现一次
#pragma warning(push)// 保存当前的警告状态
#pragma warning(disable : 4244;once : 4385);//修改警告状态
代码块2
#pragma warning(pop)//恢复成原先保存好的警告状态