#include <stdio.h>
#if !defined(__STDC__)
# define __STDC__ 0
#endif
#if !defined(__STDC_VERSION__)
# define __STDC_VERSION__ 0
#endif
int main()
{
if (!__STDC__ && !__STDC_VERSION__) {
printf("The C compiler is not C89 or later standard\n");
} else if (__STDC_VERSION__ >= 201710L) {
printf("The C compiler is C17 standard\n");
} else if (__STDC_VERSION__ >= 201112L) {
printf("The C compiler is C11 standard\n");
} else if (__STDC_VERSION__ >= 199901L) {
printf("The C compiler is C99 standard\n");
} else if (__STDC_VERSION__ >= 199409L) {
printf("The C compiler is amended C90 standard (C95)\n");
} else if (__STDC__) {
printf("The C compiler is ANSI C89 / ISO C90 standard\n");
}
if (__STDC__)
printf("__STDC__: %ld\n", __STDC_VERSION__);
if (__STDC_VERSION__)
printf("__STDC_VERSION__: %ld\n\n", __STDC_VERSION__);
return 0;
}
/*
run:
The C compiler is C99 standard
__STDC__: 199901
__STDC_VERSION__: 199901
*/