КИТ и Э КБГУ Понедельник, 06.05.2024, 15:41
Приветствую Вас Гость | RSS
Меню сайта

Наш опрос
Оцените мой сайт
Всего ответов: 118

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Структура кода на С/С++

  1. Расширения файлов С++. Структура программы.
  2. Объявление. Определение
  3. Разбиение программы на файлы
  4. Заголовочные файлы
  5. Заголовочные файлы (продолжение)
  6. Заголовочные файлы (продолжение)
  7. Двойное включение
  8. Стражи включения

Расширения файлов С++. Структура программы

В С/C++ используются следующие расширения:

  1. .с, .cxx, .cc - для файлов с исходным кодом
  2. .hxx, .hh - для заголовочных файлов

Интересно отметить, что файлы стандартной библиотеки C++ не используют расширение вовсе, например: iostream, algorithm, vector.

Разделение на файлы с исходным кодом и заголовочные файлы чисто условное, нет правил, запрещающих использовать .cpp файл как заголовочный, однако мы не рекомендуем так делать - использование общепринятых правил именования файлов упростит жизнь вам и вашим коллегам.

Не стоит помещать определения в заголовочные файлы без явной необходимости. В С/C++ есть способы, позволяющие поместить определение в заголовочный файл, не вызвав ошибки компоновщика, но, как правило, это приводит к увеличению объектного файла и программы в целом.

Рассмотрим типичную структуру файла с программой  на  языке  Си  и  правила  его  оформления на следующем простом примере:

    /* Включить описания  функций  стандартного ввода-вывода */

    #include <stdio.h>

    /* Включить описания математических функций */

    #include <math.h>

    /* Другие включаемые файлы */

    .

    /* Собственно текст программы */

    void main( void )                                                  /* <-- заголовок главной функции */

    {

       float num;                                                        /* <-- описание типов данных */

                                                                             /*  Исполняемые операторы -* */

       num = 2.345;                                                  /*  Присвоим переменной num значение 2.345 */

       printf( " sin(%f) = %f\n", num, sin(num) );         /*  Вывод на экран */

    }

Любой файл начинается с директив #include,  вставляющих  в текст программы так называемые заголовочные файлы,  которые содержат описания функций,  используемых в этом  файле.  В  нашем примере это описания стандартных функций ввода-вывода <stdio.h> и математических функций <math.h>.

Далее следует  заголовок  главной  функции программы main, операторы описания типов данных и исполняемые операторы.

Директивы #include  должны всегда начинаться с новой строки,  остальные же операторы программы могут иметь  произвольное положение в файле вплоть до записи в одну строку. При записи не допускается разрывать слова, числа, двухсимвольные операции.

Пробелы используются  для  отделения  слов друг от друга и для придания тексту большей выразительности и  могут  использоваться  везде,  за исключением случаев,  описанных в предыдущем абзаце. Там, где допускается один пробел, можно поставить любое их количество.

В любом месте программы,  там, где может стоять пробел, допускается записывать комментарии.

                /*  Это комментарий */

                // Это тоже комментарии.

Комментарии должны помогать понять смысл выполняемых программой действий и являются обязательной ее частью.  При написании комментариев следует придерживаться ряда простых истин:

-программы читаются  людьми,  компьютеру  комментарии  не нужны;

-всегда необходимы вводные комментарии,  в которых указывается назначение программы, ее автор, дата написания и изменения, краткое описание алгоритма, входных и выходных данных, основных переменных и вызываемых функций;

-комментарии должны содержать  дополнительную информацию, а не перефразировать программу;

-комментарии должны быть расположены так, чтобы программа не была менее наглядной;

-неправильные комментарии хуже,  чем их отсутствие.

Стиль программирования, расположение операторов в строках, использование пробелов,  выбор имен переменных и т.  д.  должны быть  направлены на то,  чтобы сделать программу более понятной людям, ее читающим.

Объявление. Определение

Объявление (declaration) — вводит имя, возможно, не определяя деталей. Например, ниже перечислены объявления:

int a; - объявление переменной типа int

void foo(); - объявление функции с именем foo

void bar() { foo(); } - объявление функции с именем bar

Определение (definition) - это объявление, дополнительно определяющее детали, необходимые компилятору. Из перечисленных выше объявлений, определениями являются только два:

int a; - объявление переменной типа int

void bar() { foo(); } - объявление функции вместе с телом является определением

Для определения переменной достаточно указать ее тип, а для определения функций, кроме имени, типов параметров и возвращаемого значения, нужно указать еще тело функции. Проще говоря, определение содержит всю информацию, необходимую компилятору, чтобы выделить память для хранения объекта.

В C++ есть также возможность объявить переменную, не определяя ее:

extern int a;

Ключевое слово extern как раз и позволяет сказать компилятору, что переменную нужно только объявить, при этом не нужно выделять под нее память - память под нее должна быть выделена в другом месте (возможно даже в другом файле).

Программы C++ допускают существование нескольких объявлений одного объекта (переменной, функции и др.), но не допускают наличия нескольких определений. Как правило, нарушение этого принципа приводит к ошибкам компоновщика, но может приводить и к ошибкам компиляции (повторное определение типов).

 

Вход на сайт

Поиск

Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031

Архив записей

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Copyright Fatima_Zh © 2024Бесплатный хостинг uCoz