Структурный подход к программированию 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Структурный подход к программированию



Новые средства для работы с базовыми типами данных

 

Размер целочисленных переменных в языке программирования C ++ зависит от особенностей программно-аппаратной платформы, и в зависимости от архитектуры системы он может быть равен двум, четырем или восьми байт. Для решения вопроса неопределенности размера целочисленных переменных были определены специальные типы, определенные в библиотечном модуле < cstdint >. В ряде случаев типы реализуются посредством объявления псевдонимов типов, таких, как

 

typedef signed char int8_t;

typedef unsigned char uint8_t;

typedef signed short int int16_t;

typedef unsigned short int uint16_t;

 

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

Кроме того, целесообразно использовать такие псевдонимы целочисленных типов при создании переносимых программ, которые могут быть использованы на архитекутрах с различной разрядностью. Да, большинство современных персональных компьютеров поддерживают 64-разрядную архитектуру, но существет достаточно большое количество так называемых встраиваемых систем, к которым относятся системы промышленной электроники и автоматики, оснащенные микроконтроллерами. В настоящее время активно используются 8-, 16-, 32- и 64-разрядные микроконтроллеры. Они, как правило, объеденены в вычислительную сеть предприятия, по которой происходит передача данных и команд управления. В простейшем случае микроконтроллерная система может быть подлючена к ПК через последовательный порт (COM -порт, Communication Port, или Serial Port). Через COM -порт к ПК может быть подключено сразу несколько микроконтроллерных устройств. Для различения подключаемых устройств им назначаются целочисленные идентификаторы.

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

 

< Идентификатор_устройства >: < Категория_пакета >: < Данные >

 

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

 

enum {MSG_SIZE=14};    // размер передаваемого блока данных

 

struct TMessage {

int8_t id;         // идентификатор устройства

int8_t msg_type;   // тип сообщения

int8_t data[MSG_SIZE]; // массив передаваемых данных

};

 

LINK: https://www.nongnu.org/avr-libc/user-manual/group__avr__stdint.html

https://en.cppreference.com/w/cpp/header/cstdint

https://ru.wikipedia.org/wiki/Stdint.h

 

Файловый ввод-вывод в Linux

Низкоуровневый файловый ввод-вывод является артефактом операционной системы. Именно он обеспечивает наибольшее быстродействие и используется службами ядра.

 

Низкоуровневый файловый ввод-вывод не является средством стандартной библиотеки языка С. Это платформо зависимая система ввода-вывода. На UNIX/Linux и Windows системах она имеет различную внутреннюю реализацию, хотя и имеет общий функциональный механизм.

Низкоуровневый файловый ввод-вывод основан на использовании дескрипторов файлов. Файловые дескрипторы относятся к одному из важных ресурсов процесса – программы в контексте исполнения. При клонировании процесса дочерний процесс наследует, в том числе, и таблицу открытых файловых дескрипторов.

 



Поделиться:


Последнее изменение этой страницы: 2021-06-14; просмотров: 83; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.254.179 (0.007 с.)