Есть ли разница между объявлением глобального как части инструкции объявления класса и глобального, объявленного с помощью отдельного оператора?

#c #global-variables

#c #глобальные переменные

Вопрос:

Есть ли разница в поведении глобальных переменных между этими двумя примерами? Моя интуиция говорит, что разницы нет, но я могу ошибаться.

Первый пример:

 class A
{
  // ...
};

A g_A;
 

Второй пример:

 class B
{
  // ...
} g_B;
 

Комментарии:

1. Ну, на одну новую строку меньше, на один символ меньше и на одну точку с запятой меньше 😉

2. @NathanOliver Чувствуем себя педантичными сегодня, не так ли? 😉

Ответ №1:

Нет. В этом случае разницы нет.

Но, пожалуйста, старайтесь избегать глобальных переменных.

Комментарии:

1. Я полностью согласен с попытками избегать глобальных переменных, когда это возможно. Но я изучаю код, написанный кем-то другим, и хотел убедиться, что он ведет себя так, как я думал 🙂