Please note that this is in a typedef. The initialization needs to happen when
a structure of this type is declared.
const PragmaName g_mypragma = { "mypragma", ...};
Would allow the compiler to put *both* the string "mypragma" *and* the
structure g_mypragma into (read only) "string space", with the linker/loader
calculating the actual value of the pointer.
-----Ursprüngliche Nachricht-----
Von: sqlite-users [mailto:[email protected]] Im
Auftrag von Dominique Devienne
Gesendet: Mittwoch, 02. Jänner 2019 14:22
An: SQLite mailing list <[email protected]>
Betreff: [EXTERNAL] Re: [sqlite] A Minor Issue Report: Extra const Keyword in
PragmaName zName
On Wed, Jan 2, 2019 at 1:47 PM Richard Damon <[email protected]>
wrote:
> On 12/30/18 6:10 PM, Richard Green wrote:
> const char *const zName; // Note extra space
>
> Then that is declaring that zName is an immutable pointer to a
> immutable string/character, which is actually likely true, as the code
> shouldn't be changing the names of pragmas.
>
Yeah, but a const T*const pointer must be initialized.
(unless it's a function argument, in which case it's the "caller" doing the
init, somehow).
Otherwise how else would you assign a value to that const pointer?
So as-is as a struct field, it wouldn't make sense.
C has no constructor like C++ has, to perform the assignment in the
"initializer list"
of the Ctor (i.e. between : and { ) (maybe aggregate initialization can, that's
as close to a Ctor C has. May that would work...)
In Java you can, it's called a "blank final", i.e. compiler tracks at
compile-time when the variable is first assigned, allowing that one, and errors
out at all other assignments (or if not initialized at all).
But in C/C++, I logically don't see how that makes sense. Haven't tried it
recently though :). --DD _______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
___________________________________________
Gunter Hick | Software Engineer | Scientific Games International GmbH |
Klitschgasse 2-4, A-1130 Vienna | FN 157284 a, HG Wien, DVR: 0430013 | (O) +43
1 80100 - 0
May be privileged. May be confidential. Please delete if not the addressee.
_______________________________________________
sqlite-users mailing list
[email protected]
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users