WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

Стандарты кодирования GNU это набор правил и рекомендаций для написания программ, совместимых с GNU. Стандарты кодирования GNU были написаны Ричардом Мэттью Столлманом и другими волонтерами проекта GNU. Документ стандарта является частью проекта GNU и доступен на web-сайте GNU. Таким образом он фокусируется на написании свободного программного обеспечения для GNU на языке C, большая часть которого может быть применена более широко. В частности проект GNU поощряет своих участников, которые пытаются следовать стандартам независимо от того, написаны ли их программы на C или нет. Стиль форматирования кода C известен внутри движения свободного программного обеспечения, но, разумеется, каждый может следовать ему по-своему.

Форматирование кода

Стандарты кодирования GNU точно определяют, как форматировать большинство конструкций языка программирования C. Здесь приведен характерный пример:

int
main (int argc, char *argv[])
{
  struct gizmo foo;

  fetch_gizmo (&foo, argv[1]);

 check:
  if (foo.type == MOOMIN)
    puts ("It's a moomin.");
  else if (foo.bar < GIZMO_SNUFKIN_THRESHOLD / 2
           || (strcmp (foo.class_name, "snufkin") == 0)
               && foo.bar < GIZMO_SNUFKIN_THRESHOLD)
    puts ("It's a snufkin.");
  else
    {
      char *barney;  /* Pointer to the first character after
                        the last slash in the file name.  */
      int wilma;     /* Approximate size of the universe.  */
      int fred;      /* Max value of the `bar' field.  */

      do
        {
          frobnicate (&foo, GIZMO_SNUFKIN_THRESHOLD,
                      &barney, &wilma, &fred);
          twiddle (&foo, barney, wilma + fred);
        }
      while (foo.bar >= GIZMO_SNUFKIN_THRESHOLD);

      store_size (wilma);

      goto check;
    }

  return 0;
}

Последовательное структурированное расположение блоков операторов (с отступами) — отличительная черта форматирования в стиле GNU С; также как и обязательный пробел перед скобками. Во всём отформатированном коде по стилю GNU каждая закрывающая фигурная, круглая или квадратная скобки находятся на одинаковом отступе от начала экрана с соответствующими открывающими скобками.

Можно полагаться на GNU Emacs в вопросах форматирования кода в стиле GNU.

Комментарии

Стандарты придают особое значение комментариям на английском языке:

Пожалуйста, пишите комментарии в программе GNU на английском, потому что английский является одним из языков, который понимают программисты практически во всех странах. Если Вы не владеете письменным английским в достаточной степени, пожалуйста, пишите комментарии на английском настолько хорошо, насколько у Вас это получается, затем попросите других людей помочь переписать их. Если Вы не можете писать комментарии на английском, пожалуйста, найдите кого-нибудь для работы с Вами и перевода Ваших комментариев на английский.

Комментарии должны состоять из завершенных, написанных прописными буквами предложений, перед которыми находятся два пробела (чтобы Emacs знал, где начинается одно и заканчивается другое предложение).

Для длинных или трудноразрешимых условных выражений препроцессора каждая из директив #else и #endif должны иметь комментарий, объясняющий условие для кода ниже (для #else) или выше (для #endif).

Файлы

Стандарт требует, чтобы все программы были способны функционировать, когда /usr и /etc смонтированы на чтение. Поэтому файлы, которые модифицируются для внутренних целей (файлы для записи информации, файлы блокировок, временные файлы, и т. д.) не должны сохраняться в /usr или /etc. Исключение сделано для программ, в задачи которых входит обновление системных конфигурационных файлов в /etc. Другое исключение сделано для сохранения файлов в каталоге, когда пользователь явно просит модифицировать файл в нём.

Портируемость

Стандарты оформления кода GNU ставят вопрос портирования таким образом: портируемость в мире Unix означает 'между Unix-системами'; в программе GNU эта разновидность портируемости желательна на высоком качества, но не обязательна.

Согласно стандарту, портируемость программ очень ограничена, так как GNU программы спроектированы для компиляции одним GNU C компилятором, и для запуска только на одной системе GNU.[источник не указан 1028 дней]

Существует другая проблема портирования: несмотря на тот факт, что программа должна запускаться на различных типах процессоров, стандарт говорит, что GNU не поддерживает и не будет поддерживать 16-битные системы, но поддержка всех различных 32-х и 64-битные систем абсолютно необходима.

См. также

Внешние ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии