Daniel Lundin

What C standard does (not) CW 6.3 follow?

Discussion created by Daniel Lundin on Dec 15, 2010
Latest reply on Dec 17, 2010 by Daniel Lundin

Compiler CW6.0 as well as 6.3 for HCS08.


My question is: which standard, if any, does CW follow?


For this project, it is very important that my program is strictly confoming to the C standard ISO 9899:1990.


Now I've been trying out CW and I'm not quite sure which standard it follows, if any. According to compiler docs it follows "ANSI C", whatever that is. I have set "strict ANSI" in the compiler options.


As far as I know, ANSI C refers to an old C standard that was withdrawn 21 years ago in 1989. According to ANSI, there exists no such standard and they refer to ISO/IEC 9899:1999.


However, CW seems to allow some oddities from C99, such as complex numbers, struct initializing by member identfier (designated initializers), trailing comma at the end of an enumeration list, the register keyword, C++ comments etc. Yet it does not implement the whole C99 standard.


So which standard does it follow? Should "strict ANSI" be interpreted as "The Codewarrior-specific mix of C90 and C99 language"?


Is it possible in some way to enforce CW to follow a C standard? If not C99, then at least C90?