Ryan Lortie <desrt@xxxxxxxx> writes: > GCC generates some warnings when doing type conversions in places that I > don't believe the warnings are required. It'd be be cool if someone > could explain it to me. I have an example program here: > > http://manic.desrt.ca/const.c > > I'm guessing that, by the C standard, arrays that contain items of > different types are always considered incompatible and since 'char *' > and 'const char *' are different types then 'const char **' and 'char > **' are incompatible pointers. This just doesn't seem very useful when > one of the base types is always safe to automatically promote to the > other (in this case, char * -> const char *) and there is no chance that > an unnoticed conversion could ever occur in the other direction without > generating another warning/error. As you say, this is from the C standard. gcc tries to follow the standard. Ian