预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。
程序设计语言的预处理的概念:在编译之前进行的处理。 C语言的预处理主要有三个方面的内容: 1.宏定义; 2.文件包含; 3.条件编译。 预处理命令以符号“#”开头。 来自百度词条
指令 用途
# 空指令,无任何效果
#include 包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
#if 如果给定条件为真,则编译下面代码
#ifdef 如果宏已经定义,则编译下面代码
#ifndef 如果宏没有定义,则编译下面代码
#elif 如果前面的#if给定条件不为假,当前条件为真,则编译下面代码
#endif 结束一个#if……#else条件编译块
#error 停止编译并显示错误信息
#else
#error 指令将使编译器显示一条错误信息,然后停止编译。
#line 指令可以改变编译器用来指出警告和错误信息的文件号和行号。
#pragma 指令没有正式的定义。编译器可以自定义其用途。典型的用法是禁止或允许某些烦人的警告信息。
1、宏定义
#define
2、文件包含
#include
3、条件编译,就是关于#ifdef,#ifndef,#else,#endif,#if等的用法。
#ifdef A
NSLog(@"A已经定义过了:%@",A);
#else
NSLog(@"A还未被定义");
#endif
#define B @"elena"
#ifdef B
NSLog(@"B已经定义可:%@",B);
#else
NSLog(@"B还未被定义",B);
#endif
#ifndef C
NSLog(@"C还未被定义");
#else
NSLog(@"可以在此处定义C");
#endif
#if 1
NSLog(@"D为非零值(为真)");
#else
NSLog(@"if后面的常量为0值就执行该代码段");
#endif
#if 0
#elif 1
NSLog(@"if后面的条件为假当前elif条件为真,执行这句");
#endif