c++ - Why is "static" needed for a global const char but not for a bool? -
shared header.
i can this:
const bool kactivateplayground=false;
works fine when included among multiple files.
i cannot this:
const char * kactiveplayground = "kiddiepool";
results in error: duplicate symbols.
but works:
static const char * kactiveplayground = "kiddiepool";
why static
needed const char *
not const bool
? additionally, thought static
not necessary since const
static
implicity?
in c++, const
variables default have static linkage, while non-const
variables have external linkage.
the reason multiple definitions error that
const char * kactiveplayground = "kiddiepool";
creates variable external linkage.
hey wait, didn't const
variables default static linkage? yes did. kactiveplayground
not const
. non-const
pointer const char
.
this work expect:
const char * const kactiveplayground = "kiddiepool";
Comments
Post a Comment