Re: Question about GTK+ and timers
- From: Robert Pearce <rob bdt-home demon co uk>
- To: gtk-list gnome org
- Subject: Re: Question about GTK+ and timers
- Date: Sat, 9 Apr 2011 10:18:37 +0100
Hi Igor,
On Sat, 9 Apr 2011 00:14:45 -0700 you wrote:
> > MyWordVal = buf[2] + ( buf[3] * 256 ); /* data stream is little endian */
> >
> > This is portable and clear to any future maintainer. The efficiency
> > loss is negligible.
>
> Is there any way to find out if the device is little- or big-endian?
>
Well, if it's not your own device then one might hope it comes with a
data sheet. Otherwise, you'll need to arrange to print out the raw hex
data that arrives and reverse-engineer it.
> Also, I believe that the device spit out raw data in forms of characters.
>
Raw data in what sense? I'd be surp... well, no, probably not surprised
but definitely appalled if it's just dumping its internal data
structure. For one thing, a serial link is not a reliable transport
layer and needs to have some form of synchronisation protocol.
> And I failed to produce the same result as I got on x86.
>
That may be surprising, but it may not. If you are relying on two
different compiler back-ends for different processors generating the
same exact layout of a struct then endian-ness isn't your only problem.
> But I want to know for sure.
>
> And the code for the big-endian will look like:
>
> MyWordVal = buf[3] + ( buf[2] * 256 );
>
> right?
Yes, that's right. But remember this is the _data_stream_ endian that
you care about here, not the processor.
Cheers,
Rob
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]