Диапазоны типов данных (limits.h и float.h) — КиберПедия 

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...

Диапазоны типов данных (limits.h и float.h)

2022-10-05 23
Диапазоны типов данных (limits.h и float.h) 0.00 из 5.00 0 оценок
Заказать работу

В стандарте языка ANSI C++ определены два заголовочных файла limits.h и float.h, которые описывают диапазоны значений констант, определяемые типами данных.

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

Минимальный размер переменной, не являющейся битовым полем, равен 32 бита:

CHAR_BIT 32

Максимальное количество байтов в мультибайтовом символе:

MB_LEN_MAX 1

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


 

Табл. 2‑9 Предельные значения констант и переменных в реализации Си++.

Символьное обозначение Предельное значение Побитовое представление
CHAR_MAX 255 0xFF
CHAR_MIN 0 0х00
SCHAR_MAX 127 0х7F
SCHAR_MIN -128 0x80
UCHAR_MAX 255 0xFF
SHRT_MAX 32767 0х7FFF
SHRT_MIN -32768 0x8000
USHRT_MAX 65535 0xFFFF
INT_MAX 2147483647 0x7FFFFFFF
INT_MIN -2147483648 0x80000000
LONG_MAX 9223372036854775807 0x7FFFFFFFFFFFFFFF
LONG_MIN –9223372036854775808 0x8000000000000000
ULONG_MIN 184467440737709551616 0xFFFFFFFFFFFFFFFF

 

2.14.4 Прагмы, воспринимаемые оптимизирующим компилятором С++.

Ранее, весь код, генерируемый оптимизирующим компилятором, попадал в секции по умолчанию:.text для кода и.data для данных. Теперь реализованы прагмы, позволяющие раскладывать код и данные по желаемым секциям. Имена прагм: code_section, data_section, default_code_section, default_data_section.

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

2.14.4.1 Прагма code_section.

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

Пример использования:

#pragma code_section ".textMySection"

#pragma code_section.textMySection

#pragma code_section textMySection

Пример использования:

Все три команды эквивалентны, в ассемблерный файл попадут строки вида

begin ".textMySection"

Чтобы имя секции было без точки, нужно написать:

#pragma code_section "textMySection"

Рекомендуется начинать имя секции с префикса.text, в противном случае, программа-дампер не сможет распознать секцию как секцию кода.

2.14.4.2 Прагма default_code_section.

Действует, как

#pragma code_section ".text"

Пример использования:

#pragma default_code_section

2.14.4.3 Прагма data_section.

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

Пример использования:

#pragma data_section ".mySection"

2.14.4.4 Прагма default_data_section.

Действует, как

#pragma data_section ".data"

Пример использования:

#pragma default_data_section

2.14.5 Компилятор С++. Нереализованные свойства

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

2.14.6 Оптимизирующий компилятор С++. Нереализованные свойства

В данной версии не реализованы следующие свойства C и C++:

· Не поддерживаются "неполные" явные специализации шаблонных классов и функций вида, т.е. когда шаблонная сущность В внутри шаблонного класса A переопределяется для специализации A.

· Не поддерживаются шаблонные параметры шаблона.

· Не поддерживается экспорт шаблонов.

 


3   Ассемблер

Введение

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

Об ассемблере

Ассемблер для процессоров серии 1879ВМ - это однопроходный компилятор, переводящий программу, написанную на языке ассемблера в объектный файл формата ELF. Ассемблер не разрешает внутренние ссылки, не определяет неопределенные внешние символы. Главная его задача - построить таблицу символов и произвести преобразование ассемблерных строк в инструкции процессора.

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


Поделиться с друзьями:

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

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

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.032 с.