#pragma warning 应注意的问题

1. #pragma warning(disable: 4507 34; once: 4385; error: 164)
    等价于
    // Disable warning messages 4507 and 4034.
    #pragma warning( disable : 4507 34 )

    // Issue warning 4385 only once.
    #pragma warning( once : 4385 )

    // Report warning 4164 as an error.
    #pragma warning( error : 164 )

2. 编译器自动给介于 0 到 999 间的 warning number 加 4000 .

3. 一个 compiland 最多支持 56 条 #pragma warning 语句.

4. 在函数体内使用 #pragma warning 语句, 如果 warning number 大于 4699 , 该语句在函数结束后起作用. 也就是说, 函数体内的该 #pragma warning 语句与将其放在函数结束后效果是一样的. 如:
 
     1. #pragma warning(disable: 4700)
     2. void Test()
     3. {
     4.     int x;
     5.     int y = x;   // no C4700 here
     6. #pragma warning(default: 4700)   // C4700 enabled after Test ends
     7. }
     8.
     9. int main()
    10. {
    11.     int x;
    12.     int y = x;   // C4700
    13. }
   
    第 6 行放在 Test() 函数体内任一行, 与放在 Test() 函数后半大括号后 main() 函数前效果是一样的: 仅对 main() 函数中 int y = x; 起作用.

你可能感兴趣的:(c,report,编译器)