I want to have a global names
variable, which looks like that
char* names[NAMES_CAP];
int names_len = 0;
And I want every one who links to this library to be able to add an item to this list.
It's easy to do that from main
.
int main(int argc,char**argv) {
names[names_len++] = "new name";
names[names_len++] = "new name 2";
}
but what if I want to stack up two libraries? (ie, my library, libnames
holds the global variable. And if someone links to libnameuser
who uses libnames
, it will automatically add all names defined in libnameuser
to the names
array in libnames
.
Is there any way to do that?
In C++, I can insert the names[names_len++] = "..."
to the constructor of a global object, and it must be called. But can I do that with plain C?