Я хочу иметь глобальную переменную names
, которая выглядит так
char* names[NAMES_CAP];
int names_len = 0;
И я хочу, чтобы каждый, кто обращается к этой библиотеке, мог добавить элемент в этот список.
Это легко сделать из main
.
int main(int argc,char**argv) {
names[names_len++] = "new name";
names[names_len++] = "new name 2";
}
но что если я хочу сложить две библиотеки? (т.е. моя библиотека, libnames
, хранит глобальную переменную. И если кто-то ссылается на libnameuser
, который использует libnames
, он автоматически добавит все имена, определенные в libnameuser
, в массив names
в libnames
.
Есть ли способ сделать это?
В C++ я могу вставить names[names_len++] = "..."
в конструктор глобального объекта, и он должен быть вызван. Но могу ли я сделать это с обычным C?