On Thu, Oct 17, 2013 at 05:29:33PM +0200, [email protected] wrote:
> Speaking about endianness, it really is hard to manage:
>
> void myfunction( ... )
> {
> #ifdef BIG_ENDIAN
> move_bytes_in_a_specific_order
> #else
> move_bytes_in_the_other_specific_order
> #endif
> }
Bad way to manage endian in C. Better to have branching based on C
itself (rather than preprocessor), otherwise you run the risk of never
testing code outside the branch your dev machine(s) match. E.g. use
char is_little_endian( … ) {
int i = 1;
int *p = &i;
return 1 == *(char*)p;
}
Or similar. The test will likely be compiled out as a no-op anyway with
decent compilers (GCC: yes; Sun Workshop: no.)
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]
Archive: http://lists.debian.org/[email protected]