[U-Boot] [PATCH 12/26 v2][NEXT] ARM: add relocation support
Wolfgang Denk
wd at denx.de
Fri Sep 17 21:22:22 CEST 2010
Dear Albert ARIBAUD,
In message <4C939ADD.5090009 at free.fr> you wrote:
>
> >>> init_fnc_t *init_sequence[] = {
> >>
> >> init_sequence is a constant, not an initialized variable, and thus
> >> should have the 'const' qualifier.
> >
> > Actually it _is_ an initialized variable (which still may take a
> > const).
>
> Maybe we're having a terminology discrepancy here.
We are talking about C code here, so I apply the terminology of the C
programming language.
> For me an initialized variable is a *variable*, i.e. intended to *vary*
> over execution time, and which is initialized, i.e. set to a known
> initial value; whereas a const has a value which does not vary over
> execution time, and thus a const is not a variable.
A variable is a meaningful name of a data storage location in computer
memory. The term "variable" does not include specific properties of
this storage location. In the C programming language, additional
qualifiers are used to refer to specific properties, like "automatic
variable", "initialized variable", "global variable", etc.
The C code line above declares a _variable_ with the name
"init_sequence" as an array of pointers to objects of type
init_fnc_t. C does not have a notation to declare "constants".
Even if you add a "const" type qualifier (or two), it's still a
declaration of a variable.
> In that sense, and as init_sequence does not, and should not, vary over
> execution time, it is not a variable.
Indeed, you use a different terminology.
Let's end this discussion here. Please.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"It is better to have tried and failed than to have failed to try,
but the result's the same." - Mike Dennison
More information about the U-Boot
mailing list