На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (2) 1 [2]  все  ( Перейти к последнему сообщению )  
> Глобальные переменные: корректные названия, префиксы.
    Не претендую на лучше решение, но мне так удобно опишу как я делаю:

    Следую таким правилам (сам их и придумал)

    1. Все переменные и функции располагать в алфавитном порядке.
    2. в .cpp - только функции и начинаются с названия модуля, всё остальное в .h
    3. namespace e - для глобальных переменных "е" от слова "extern"

    Пример
    ExpandedWrap disabled
      // Project.h // это самый главный хидер
       
      namespace e // глобальные переменные
      {
          int focus;
          HMENU hmenu;
          // ...  здесь все глобальные переменные в алфавитном порядке
      }

    в модулях где нужны глобальные переменные
    ExpandedWrap disabled
      // Data.h
       
      namespace e // глобальные переменные
      {
          extern int focus;
          extern HMENU hmenu;
          // ... здесь только те глобальные переменные которые есть в этом модуле
      }

    ExpandedWrap disabled
      // Data.cpp
       
      #include "Data.h"
       
      void DataMouseMove(HWND hwnd)
      {
          e::focus = 0; // применение глобальной переменной
      }

    В итоге:
    1. Удобно находить так как все в алфавитном порядке.
    2. Удобно писать e:: и пишем глобальную переменную.
    3. Визуально хорошо видно в программе где глобальные переменные, и вместе с тем достаточно короткие имена.
    4. Удобно расширять программу, так как есть правила достаточно им следовать и нет путаницы и программа самодокументированная без комментариев.
    5. Чем больше становится программа - тем больше она приносит эстетического удовольствия (вот как много сделано!), а не проблем типа что невозможно что-то найти или какие-то трудноуловимые ошибки.

    PS комментарии выше я написал для сайта, в реальной программе комментариев нет, за исключением самой первой строчки с названием файла.
    Сообщение отредактировано: Mr.Brooks -
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0198 ]   [ 16 queries used ]   [ Generated: 28.03.24, 14:23 GMT ]