ITPub博客

首页 > 应用开发 > IT综合 > C# 语言规范--2.5.3 声明指令(转)

C# 语言规范--2.5.3 声明指令(转)

原创 IT综合 作者:BugRobber 时间:2007-07-06 15:22:57 0 删除 编辑

声明指令用于定义或取消定义条件编译符号。

pp-declaration:(pp 声明:)
whitespaceopt # whitespaceopt define whitespace conditional-symbol pp-new-line(空白可选 # 空白可选 define 空白 条件符号 pp 新行)
whitespaceopt # whitespaceopt undef whitespace conditional-symbol pp-new-line(空白可选 # 空白可选 undef 空白 条件符号 pp 新行)
pp-new-line:(pp 新行:)
whitespaceopt single-line-commentopt new-line(空白可选 单行注释可选 新行)

对 #define 指令的处理使给定的条件编译符号成为已定义的(从跟在指令后面的源代码行开始)。类似地,对 #undef 指令的处理使给定的条件编译符号成为未定义的(从跟在指令后面的源代码行开始)。

源文件中的任何 #define 和 #undef 指令都必须出现在源文件中第一个“标记”(第 2.4 节)的前面,否则将发生编译时错误。直观地讲,#define 和 #undef 指令必须位于源文件中所有“实代码”的前面。

示例:

#define Enterprise#if Professional || Enterprise   #define Advanced#endifnamespace Megacorp.Data{   #if Advanced   class PivotTable {...}   #endif}

是有效的,这是因为 #define 指令位于源文件中第一个标记(namespace 关键字)的前面。

下面的示例产生编译时错误,因为 #define 指令在实代码后面出现:

#define Anamespace N{   #define B   #if B   class Class1 {}   #endif}

#define 指令可用于重复地定义一个已定义的条件编译符号,而不必对该符号插入任何 #undef。下面的示例定义一个条件编译符号 A,然后再次定义它。

#define A#define A

#undef 指令可用于取消定义一个本来已经是未定义的条件编译符号。下面的示例定义一个条件编译符号 A,然后两次取消定义该符号;第二个 #undef 没有作用但仍是有效的。

#define A#undef A#undef A
[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8781179/viewspace-924540/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    372
  • 访问量
    200911