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 Microsoft warnings like
'fscanf': This function or variable may be unsafe. Consider using fscanf_s instead.
I get these despite following some steps on MSDN Developer's site for setting up an ANSI C project, but all the _s ("secure") calls are not ANSI C!
Any suggestions on putting Visual C++ Studio in a strict ANSI-only mode?
Thanks.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With