On Thu, Feb 15, 2007 at 07:57:05AM -0800, Linus Torvalds wrote: > I agree that it's "unnecessary code", and in many ways exactly the same > thing. I just happen to believe that casts tend to be a lot more dangerous > than extraneous initializations. Casts have this nasty tendency of hiding > *other* problems too (ie you later change the thing you cast completely, > and now the compiler doesn't warn about a *real* bug, because the cast > will just silently force it to a wrong type).
Well one way you could cast it and still have the compiler tell you if the type ever changes is doing something stupid like: char* unsigned_char_star_to_char_star(unsigned char* in) { return (char*)in; } Then call your strlen with: strlen(unsigned_char_star_to_char_star(my_unfortunate_unsigned_char_string) If you ever changed the type the compiler would warn you again since the convertion function doesn't accept anything other than unsigned char * being passed in for "convertion". Seems safer than a direct cast since then you get no type checking anymore. I hope it doesn't come to this though. Hopefully gcc will change it's behaviour back or give an option of --dontcomplainaboutcharstar :) -- Len Sorensen - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/