美文网首页
预处理命令

预处理命令

作者: Elena_li | 来源:发表于2016-03-10 17:48 被阅读53次

    预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符。整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。

    程序设计语言的预处理的概念:在编译之前进行的处理。 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
    
    

    相关文章

      网友评论

          本文标题:预处理命令

          本文链接:https://www.haomeiwen.com/subject/pwmtlttx.html