On Mon, 5 Jan 1998, Chris Jacobson wrote: > I searched through GCC's manpage and EGCS's manpage (I use EGCS btw), but > couldn't find anything about turning off this warning: > > objects.c++:429: warning: multi-character character constant AFAIR they results aren't defined by the standard: it's up to the compiler how it will lay out the characters, so on one machine, 'abcd' could be 'a' << 24 + 'b' << 16 + 'c' << 8 + 'd', but on another something else completely. gcc, however, seems to put them so that your code will work across all platforms: I tested on a Solaris machine (and I assume you use Linux?) Unfortunately, there's no native compiler installed, so I couldn't test that. If you want to be sure of portability, you could use some macro like: #define INT(string) (string[0] << 24 + string[1] << 16 + string[2] << 8 + string[3]) And then: /* Ensure keyword is 3+ chars in len */ switch (INT(keyword_read_from_file)) { case INT("Afft"): ... break; case INT("Levl"): break; } ============================================================================= Erwin Andreasen Herlev, Denmark <erwin@pip.dknet.dk> UNIX System Programmer <URL:http://www.abandoned.org/drylock/> <*> (not speaking for) DDE ============================================================================= +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST