从msdn我得到这个:
#pragma warning disable warning-list #pragma warning restore warning-list
在示例中,使用了disable
和restore
.restore
如果我想要为整个文件禁用它,是否有必要?
就像,如果我不恢复,它携带多远?之后编译的所有内容都禁用警告吗?或者仅仅是该文件的其余部分?还是被忽略了?
如果不还原,则对文件的其余部分禁用处于禁用状态.
有趣的是,这种行为没有在语言规范中定义.(参见第9.5.8节)但是,条件编译符号的9.5.1部分确实表明"直到文件结束行为"
符号保持定义,直到处理完相同符号的#undef指令,或者直到达到源文件的末尾.
鉴于"预处理器"实际上是编译的词法分析阶段的一部分,在可预见的未来,这种行为很可能是微软和所有其他实现的有效合同(特别是因为替代将是非常复杂且非确定性的在源文件编译顺序)