The C (C99+) standard requires (though implicitly) a conforming implementation to define __STDC__
to 1.
However, the C standard does not require an IEC 60559 conformant implementation to define __STDC_IEC_559__
(to 1).
Consequences:
#if __STDC__ != 1
/* non-conforming implementation */
#endif
#if __STDC_IEC_559__ != 1
/* may be IEC 60559 conformant implementation */
#endif
Here we see that there is no consistency in the semantics of these macros. Any ideas why? Is it a possible defect?
Why the C standard does not require an IEC 60559 conformant implementation to define __STDC_IEC_559__
(to 1)?