码迷,mamicode.com
首页 > 其他好文 > 详细

ISO/IEC 9899:2011 条款6.10——预处理指示符

时间:2016-01-17 21:37:48      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

6.10 预处理指示符

 

语法

1、preprocessing-file:

        groupopt

    group:

        group-part

        group    group-part

    group-part:

        if-section

        control-line

        text-line

        #    non-directive

    if-section:

        if-group    elif-groupsopt    else-groupopt    endif-line

    if-group:

        #    if    constant-expression    new-line    groupopt

        #    ifdef    identifier    new-line    groupopt

        #    ifndef    identifier    new-line    groupopt

    elif-groups:

        elif-group

        elif-groups    elif-group

    elif-group:

        #    elif    constant-expression    new-line    groupopt        

    else-group:

        #    else    new-line    groupopt

    endif-line:

        #    else    new-line

    control-line:

        #    include    pp-tokens    new-line

        #    define    identifier    replacement-list    new-line

        #    define    identifier    lparen    identifier-listopt    )    replacement-list    new-line

        #    define    identifier    lparen    ...    )    replacement-list    new-line

        #    define    identifier    lparen    identifier-list    ,    ...    )    replacement-list    new-line

        #    undef    identifier    new-line

        #    line    pp-tokens    new-line

        #    error    pp-tokensopt    new-line

        #    pragma    pp-tokensopt    new-line

        #    new-line

    text-line:

        pp-tokensopt    new-line

    non-directive:

        pp-tokens    new-line

    lparen:

        一个(字符,没有空白符立即放在它之前

    replacement-list:

        pp-tokensopt

    pp-tokens:

        preprocessing-token

        pp-tokens    preprocessing-token

    new-line:

        换行字符

 

描述

2、一个预处理指示符由一串预处理满足以下约束的预处理符记组成:在序列中的第一个符记是一个 # 预处理符记,(在翻译阶段4的开头)它要么是在源文件中的第一个字符(可选地,在不包含换行字符的空白符之后),要么跟在至少包含一个换行字符的空白符之后。在该序列中的最后一个符记是跟在第一个符记之后的第一个换行字符。[注:从而,预处理器指示符通常被称为“行”。这些“行”不具有其它语法意义,由于所有空白符都是等价的,除了在预处理期间的某些情况下(比如见6.10.3.2中的#字符串字面量创建操作符)。]一个换行字符终结预处理指示符,即使它在一个类似函数的宏的调用内发生。

ISO/IEC 9899:2011 条款6.10——预处理指示符

标签:

原文地址:http://www.cnblogs.com/zenny-chen/p/5137769.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!