docs/devel: make a statement about includes
While not explicitly disallowing header macro abuse (because that would make us hypocrites) lets at least address some things to think about. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Juan Quintela <quintela@redhat.com> Message-Id: <20230424092249.58552-17-alex.bennee@linaro.org>
This commit is contained in:
parent
d035fb106f
commit
6a0057aa22
@ -300,6 +300,20 @@ putting those into qemu/typedefs.h instead of including the header.
|
|||||||
|
|
||||||
Cyclic inclusion is forbidden.
|
Cyclic inclusion is forbidden.
|
||||||
|
|
||||||
|
Generative Includes
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
QEMU makes fairly extensive use of the macro pre-processor to
|
||||||
|
instantiate multiple similar functions. While such abuse of the macro
|
||||||
|
processor isn't discouraged it can make debugging and code navigation
|
||||||
|
harder. You should consider carefully if the same effect can be
|
||||||
|
achieved by making it easy for the compiler to constant fold or using
|
||||||
|
python scripting to generate grep friendly code.
|
||||||
|
|
||||||
|
If you do use template header files they should be named with the
|
||||||
|
``.c.inc`` or ``.h.inc`` suffix to make it clear they are being
|
||||||
|
included for expansion.
|
||||||
|
|
||||||
C types
|
C types
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user