Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по Леонову, 5семестр.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
503.3 Кб
Скачать

Правило составления имени

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

Для имен переменных эта схема будет выглядеть так:

Имя-модуля — имя-переменной

Т.е. всегда первым членом составного имени переменной идет идентификатор (название) модуля, затем собственно имя переменной (существительное либо существительное+прилагательное).

Например, в модулях, которые реализуют обмен по некоторым интерфейсам, могут быть переменные:

uart_buffer_rx

uart_buffer_tx

uart_counter

spi_buffer_rx

spi_buffer_tx

spi_counter

Для имен функций эту схему можно выразить в терминах правил грамматики:

Подлежащее — сказуемое — дополнение

Либо эту схему можно выразить в виде иерархической взаимосвязи:

Субъект — действие — объект

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

Например, в модуле, который реализует работу с флэш-памятью, могут быть различные методы для записи и стирания содержимого памяти:

flash_write_byte

flash_write_float

flash_erase_full

flash_erase_sector

Недостатки

У описанного метода есть и свои недостатки. Поскольку это всего лишь имитация, то этот метод работает в рамках модели языка Си, в котором не существует метода для ручного дробления глобального пространства имен программы. Поэтому в отличие от нативного механизма пространств имен (реализованного в других языках), для доступа к переменным внутри модуля приходится использовать те же самые глобальные длинные имена.

17 Строки и потоки.

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

Нуль-символ – это символ с кодом равным 0, что записывается в виде управляющей последовательности ‘\0’. По положению нуль-символа определяется фактическая длина строки.

Строку можно проинициализировать:

Char str[10] = “Vasia”;

Оператор char *str = “Vasia” создает указатель на строковую константу.

Библиотека представляет возможности компилирования, сравнения, объединения строк, поиска подстроки, определения длины строки и т.д.

Оба способы работы со строками(через массивы или указатели) приемлемы и имеют свои плюсы и минусы, но в общем случае лучше пользоваться функциями определенными в стандартной библиотеке C++ классом String.

Поток – это абстрактное понятие, относящееся к любому переносу данных от источника к приемнику. Потоки C++ в отличие от функций ввода/вывода в стиле C, обеспечивают надежную работу как со стандартными, так и с определенными пользователем типами данных.

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

По виду устройств, с которыми работает поток, можно разделить потоки, на стандартные(клавиатура), файловые(файлы) и строковые(массив символов в оперативной памяти).

Для поддержки стандартных потоков библиотека C++ содержит иерархию классов, построенную на базе классов ios и streambuf. От этих классов наследуется класс istream(входных данных) и ostream(выходных данных).

Стандартные потоки.

Заголовочный файл <iostream> содержит,

cin(связывается с клавиатурой, буферизированный вывод)

cout(связывается с дисплеем, буферизированный вывод)

cerr(связывается с дисплеем, небуферизованный вывод, направляет сообщения об ошибках)

clog( связывается с дисплеем, буферизированный вывод направляет сообщения об ошибках)

В классах istream и ostream операции извлечения из потока >> и помещения в поток << определены путём перегрузки операции сдвига.

#include <iostream.h>

int main(){

int i;

cin >> i;

cout << “Вы ввели” << i;

return 0;

}

Операции << и >> перегружены для всех типов данных, что позволяет автоматически выполнять ввод и вывод, в соответствии с определенным типом величин.