Я переписываю чей-то код, у которого была глобальная переменная, которая полезна во время инициализации, когда Java делает свои обратные вызовы на C и сразу после. Похоже, что они объявили эту переменную в нескольких местах с префиксом extern
и один раз без него. Я действительно не понимаю, почему они будут делать это с глобальной переменной (префикс g_
), когда я предпочитаю называть ее static
и объявлять ее только один раз.Как иметь глобальную переменную в C++
Смогу ли я это сделать или у static
есть отрицательные коннотации для безопасности потоков в этом контексте? Основная часть моего кода - C++, но есть некоторые extern 'C'
такие вещи, как те функции, на которые вызывает Java.
В настоящее время я не использую extern
или static
, но я склонен полагать, что именно поэтому я получаю ошибки связывания.
То же самое, что и в C, но лучшая глобальная переменная не является глобальной variab.e – EJP