提交 27dfb028 编写于 作者: P Peter Krempa

docs: hacking: Add good practices for shortening conditional expressions

Document that checking if a integer is (non-)zero should (not must)
avoid the shortened form that C allows as it may confuse readers into
overlooking the other possible values which might be interresting to
handle.

While pointers have distinct values from the point of view of the code
we only care whether it's non-NULL and thus it's documented it's okay
to shorten those.
Signed-off-by: NPeter Krempa <pkrempa@redhat.com>
ACKed-by: NEric Blake <eblake@redhat.com>
上级 be432131
...@@ -826,6 +826,28 @@ ...@@ -826,6 +826,28 @@
} }
</pre> </pre>
<h2><a id="conditions">Conditional expressions</a></h2>
<p>For readability reasons new code should avoid shortening comparisons
to 0 for numeric types. Boolean and pointer comparisions may be
shortened. All long forms are okay:
</p>
<pre>
virFooPtr foos = NULL;
size nfoos = 0;
bool hasFoos = false;
GOOD:
if (!foos)
if (!hasFoos)
if (nfoos == 0)
if (foos == NULL)
if (hasFoos == true)
BAD:
if (!nfoos)
if (nfoos)
</pre>
<h2><a id="preprocessor">Preprocessor</a></h2> <h2><a id="preprocessor">Preprocessor</a></h2>
<p>Macros defined with an ALL_CAPS name should generally be <p>Macros defined with an ALL_CAPS name should generally be
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册