Re: [PATCH v2 05/13] Rephrase section about constants

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> 
> From: Christophe de Dinechin <dinechin@xxxxxxxxxx>
> 
> The indent of the rephrasing is that:
> 
> - If you have a single constant, use const, e.g. (visible in debugger)
>     const unsigned max_stuff = 42;
> 
> - If you have multiple constants, prefer enums over #define, as
>     already suggested later in the guide:
>     enum {
>        A = 0,
>        B = 42,
>        C = -1
>     }
> 

The const is a bit different from C and C++ and this results
in a bit of confusion. max_stuff above is a compile time
constant in C++, not in C while the enumeration is always
a compile time constant in both languages.
So the choice is not only syntax one.
I think that the "Alternatively, use global `const` variables."
is quite an ancient comment when spice-server was in C++
(much before I join and I think even older than the git repository!)
Unfortunately also C currently can't attach a type to the
enumeration values so if you want to define in C a constant
with a type usually you use a define like

#define MY_CONSTANT ((uint64_t)123)

You are right, this paragraph needs some care. Maybe the
style should be different for C and C++ and here we should
just use enum and #define while having a section for C++
telling about const ?

> Signed-off-by: Christophe de Dinechin <dinechin@xxxxxxxxxx>
> ---
>  docs/spice_style.txt | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/docs/spice_style.txt b/docs/spice_style.txt
> index 61cb0701..3e463d2f 100644
> --- a/docs/spice_style.txt
> +++ b/docs/spice_style.txt
> @@ -106,7 +106,9 @@ Using goto is allowed in C code for error handling. In
> any other case it will be
>  Defining Constant values
>  ------------------------
>  
> -Use defines for constant values for improving readability and ease of
> changes. Alternatively, use global `const` variables.
> +Use defines for constant values for improving readability and ease of
> changes.
> +Alternatively, use global `const` variables for individual values.
> +If multiple related constants are to be defined, consider the use of
> enumerations with initializers.
>  
>  Short functions
>  ---------------

Frediano
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]