I'm working on a Linux machine. Is there any system command to find the standard followed by the C compiler I'm using?
In the case of gcc , you can tell the compiler what C standard to use via the --std option. Running man gcc will explain this, and will list all of the standards that are supported.
Type “gcc –version” in command prompt to check whether C compiler is installed in your machine. Type “g++ –version” in command prompt to check whether C++ compiler is installed in your machine. But, we are good if C compiler is installed successfully in our machine as of now.
Just use g++ -v or gcc -v which will give you your compiler version. You can also go to your windows settings, click on "Apps" go to the search bar and search up c++ scroll down to the last item, and click on it.
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:
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.
You can also test this in your code using standard macros, for example (originally from sourceforge project of the same name):
#if defined(__STDC__) # define PREDEF_STANDARD_C_1989 # if defined(__STDC_VERSION__) # define PREDEF_STANDARD_C_1990 # if (__STDC_VERSION__ >= 199409L) # define PREDEF_STANDARD_C_1994 # endif # if (__STDC_VERSION__ >= 199901L) # define PREDEF_STANDARD_C_1999 # endif # if (__STDC_VERSION__ >= 201710L) # define PREDEF_STANDARD_C_2018 # endif # endif #endif
If you want to check this from the command line you can pick one (e.g. c89) and check the return value from a minimal program:
echo -e "#ifdef __STDC__\n#error\n#endif"|gcc -xc -c - > /dev/null 2>&1; test $? -eq 0 || echo "c89
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