How to find my current compiler's standard, like if it is C90, etc

前端 未结 5 1734
梦谈多话
梦谈多话 2020-12-13 09:29

I\'m working on a Linux machine. Is there any system command to find the standard followed by the C compiler I\'m using?

5条回答
  •  孤城傲影
    2020-12-13 10:04

    This is compiler dependent, I'm supposing you're using GCC. You could check your compiler defined macros using:

    gcc -dM -E - < /dev/null
    

    Check the manual about the flags, specially:

    __STDC_VERSION__

    This macro expands to the C Standard's version number, a long integer constant of the form yyyymmL where yyyy and mm are the year and month of the Standard version. This signifies which version of the C Standard the compiler conforms to. Like STDC, this is not necessarily accurate for the entire implementation, unless GNU CPP is being used with GCC.

    The value 199409L signifies the 1989 C standard as amended in 1994, which is the current default; the value 199901L signifies the 1999 revision of the C standard. Support for the 1999 revision is not yet complete.

    This macro is not defined if the -traditional-cpp option is used, nor when compiling C++ or Objective-C.

    In this site you can find a lot of information about this. See the table present here.

提交回复
热议问题