[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/5] CODING_STYLE: add C type rules
From: |
Avi Kivity |
Subject: |
Re: [Qemu-devel] [PATCH 2/5] CODING_STYLE: add C type rules |
Date: |
Wed, 18 Aug 2010 19:44:13 +0300 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100720 Fedora/3.1.1-1.fc13 Thunderbird/3.1.1 |
On 08/17/2010 11:09 AM, Jes Sorensen wrote:
On 08/12/10 19:50, Blue Swirl wrote:
+While using "bool" is good for readability, it comes with minor caveats:
+ - Don't use "bool" in places where the type size must be constant across
+ all systems, like public interfaces and on-the-wire protocols.
+ - Don't compare a bool variable against the literal, "true",
+ since a value with a logical non-false value need not be "1".
+ I.e., don't write "if (seen == true) ...". Rather, write "if (seen)...".
I'd strongly discourage the use of bool in any code. It doesn't provide
anything guarantees
It's actually better than int:
int flag = word & BIT;
can lose the BIT if it is outside the range of an int, whereas
bool flag = word & BIT;
will be true if BIT is set. Not to mention the improved readability
(which appears to be a downside to C fans).
and you are not sure about the size of it. Using int
is safer. IMHO bool is one of the worse examples of changes to the C
standard :(
bool foo = false;
foo++;
What's incrementing a bool supposed to mean? Even more true?
if (foo == true)....
As it happens, this will succeed.
The other thing that might be worth mentioning in the int/long section
is that long is complicated in broken development environments such as
Windows where it is only 32 bit :(
It's only complicated if you assume sizeof(long) == sizeof(void *).
While we're used to it from Linux, all you need is s/long/intptr_t/ and
you're all set.
--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.
- Re: [Qemu-devel] [PATCH 2/5] CODING_STYLE: add C type rules, (continued)
- [Qemu-devel] Re: [PATCH 2/5] CODING_STYLE: add C type rules, Paolo Bonzini, 2010/08/18
- [Qemu-devel] Re: [PATCH 2/5] CODING_STYLE: add C type rules, Jes Sorensen, 2010/08/18
- Re: [Qemu-devel] Re: [PATCH 2/5] CODING_STYLE: add C type rules, Kevin Wolf, 2010/08/18
- Re: [Qemu-devel] Re: [PATCH 2/5] CODING_STYLE: add C type rules, Paolo Bonzini, 2010/08/18
- Re: [Qemu-devel] Re: [PATCH 2/5] CODING_STYLE: add C type rules, Avi Kivity, 2010/08/18
- Re: [Qemu-devel] Re: [PATCH 2/5] CODING_STYLE: add C type rules, Paolo Bonzini, 2010/08/19
- Re: [Qemu-devel] Re: [PATCH 2/5] CODING_STYLE: add C type rules, Avi Kivity, 2010/08/19
Re: [Qemu-devel] [PATCH 2/5] CODING_STYLE: add C type rules,
Avi Kivity <=