g_
обычно обозначает глобальную переменную. Код (не .NET), представленный в документации и примерах Microsoft, может использовать какой-либо вариант венгерской нотации по историческим причинам.
Системы Венгерские обозначения не очень широко используются, если вообще используются в C ++, поскольку компилятор уже знает типы ваших переменных. Существует такая вещь, как Applications Венгерская нотация, для которой Джоэл Спольски написал статью о .
Теперь глобальные переменные не являются хорошей идеей в производственном коде. Глобальные переменные доступны везде, что означает, что они могут быть изменены в любом месте и в любом месте вашего кода. Это легко становится кошмаром обслуживания и отладки.
Причина, по которой вы видите их в примере кода, заключается в том, что образцы представляют собой минимальные, но скомпилированные фрагменты кода, демонстрирующие использование API. Обратите внимание, что пример кода также не включает такие вещи, как проверка ошибок по той же причине. Пример кода не обязательно демонстрирует хорошие методы или практики кодирования, хотя, безусловно, это возможно.
В двух словах, «образец» кода очень быстро запутывается в любом нетривиальном приложении. В рабочем коде вы должны настроить фреймворк и сделать правильный дизайн кода. Это включает в себя не использование глобальных переменных.