Я хочу иметь глобальную переменную 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?