预处理指令及常用情况

来源:互联网 发布:快盘数据迁移 编辑:程序博客网 时间:2024/05/16 18:44

一、什么是预处理:
预处理顾名思义,在编译之前 预先处理,处理完之后再编译。编译就是把源代码转换成二进制文件,预处理会指导 哪些不编译,哪些编译,哪些被替换。
二、常用的预处理指令:
1. #define 宏
1) 简单的宏替换

  #define PI  3.1415 //最典型的宏替换 预处理的时候直接把PI的地方都替换成 3.1415

2) 带参的宏替换

  #define  CHENG(x)  x*10   //  int nNum =  CHENG(1) ;  //等于  10  int nNum =  CHENG(1+2) ; //等于  ?

int nNum = CHENG(1+2) ; //会被处理成 int nNum = 1 +2 *10 ,而不是 (1+2)*10 或者3*10

2.头文件包含
预处理的时候直接把里面的内容复制到包含它的文件里

#include <stdio.h>//在写程序的软件指定的目录找,比如写程序软件的安装路径。如果找不到失败。#include "stdio.h" //先在当前目录找,找不到再去指定的目录

3、条件编译
条件编译 和if else 很类似 只不过if else是程序执行的时候判断,条件编译是程序编译之前,决定编译哪个代码,不满足条件就不编译这段代码。相当于没写这段代码。

条件预处理指令的应用:运行平台、运行环境的检测#include<stdio.h>#include<stdlib.h>int main(int argc, char *argv[]){    #ifdef _DEBUG        printf("debug 模式\n");//如果是debug模式编译这段代码    #else        printf("release\n");//否则编译这段代码    #endif    #ifdef _M_AMD64        printf("64\n");//如果是64位操作系统编译这段代码    #else        printf("32\n");//否则编译这段代码    #endif        system("pause");        return 0;}
0 0