Setting Visual C++ Studio/Express to strict ANSI mode

后端 未结 3 2068
-上瘾入骨i
-上瘾入骨i 2021-01-18 06:26

I generally program & compile under Linux with gcc and -ansi flag; but I\'ve been forced with doing a job in Visual C++ and whenever I compile my C code I get all the Mi

相关标签:
3条回答
  • 2021-01-18 06:59

    One way to suppress specific warnings is to add something like the following to the source.

    #if defined( _WIN32 )
    #pragma warning(disable:4996)
    #endif
    
    0 讨论(0)
  • 2021-01-18 07:06

    These warnings can be suppressed by defining _CRT_SECURE_NO_WARNING

    Go to Procect Settings -> Preprocessor and add _CRT_SECURE_NO_WARNING

    This isn't forcing compiler to comply with ANSI. Just suppresses use ..._s warnings

    0 讨论(0)
  • 2021-01-18 07:14

    As mentioned in another answer, #define'ing _CRT_SECURE_NO_WARNING will address the specific warnings you mentioned in your question.

    If you're really looking for an ANSI-only mode, the closest thing is the /Za compiler switch. Inside the Visual Studio IDE, you can find it in the project's Properties dialog (under Configuration Properties | C/C++ | Language | Disable Language Extensions).

    Note that virtually all Windows apps build with Microsoft's compiler extensions enabled; e.g., I don't think you'd even be able to consume Windows SDK headers with /Za set. If your code truly is strict ANSI, you should be OK. If you have a few Windows-specific pieces in a project that is mostly strict ANSI, you could probably isolate those sources and only build those indivudal source files with /Za unset.

    0 讨论(0)
提交回复
热议问题