|
|||||||||||||||||||||||||||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[7] Особый интерес представляет директива #pragma, которая позволяет указывать специальные опции компилятора. Эта директива имеет следующий формат: #pragma keyword options где keyword - ключевое слово из таблицы 7. Таблица 7 Варианты использования директивы #pragma
Рассмотрим подробнее каждую из этих директив. #pragma jis и nojis Если в вашей программе встречаются литералы, содержащие двухбайтные символы в кодировке JIS для Японии и проч., то данная директива управляет обработкой этих символов. (Как для меня, так не актуально) #pragma prinfcheck Некоторые библиотечные функции принимают в качестве аргумента строку формата с последующим списком аргументов переменной длины. Количество аргументов может быть разным в зависимости от строки формата наподобие функции ptintf. Несмотря на то, что строка формата интерпретируется во время выполнения программы, ее корректность может быть проверена на этапе компиляции. Эта директива как раз и включает такую проверку. Она по умолчанию включена в заголовочный файл <stdio.h>. Вы можите ее также включить и для ваших собственных функций, которые в качестве аргумента принимают список переменной длины. Учтите что уровень предупреждений компилятора должен быть установлен как минимум в -1, чтобы директива возымела действие. #pragma psect Обычно компилятор разбивает объектный код на фрагменты, которые размещены в именованных секциях, описанных в соответствующем разделе документации (я его не переводил - слишком глубоко...). Это поведение удовлетворяет потребностям большинства обычных приложений. Но иногда возникает необходимость перенаправить фрагмент в другую секцию. Когда возникнет, тогда и переведу этот фрагмент :-) #pragma regsused Компилятор автоматически сохраняет контекст при возникновении прерывания. Но он определяет все те переменные и объекты, которые явно присутствуют в функции обработки прерываний. Чтобы ограничить количество сохраняемых переменных и объектов можно воспользоваться этой директивой. Директива определяет поведение только первой по тексту программы функции обработки прерываний. В крутых контроллерах может быть несколько таких обработчико. В этом случае необходимо использовать эту директиву для каждой из функций. 5.8 Стандартные функции ввода-вывода Несколько функций ввода-вывода поставляются в составе стандартной библиотеки. Основным их предназначением является ввод и вывод форматированного текста в стандартные потоки. Подробнее эти функции рассмотрены в разделе руководства "Функции стандартной библиотеки". Перечень поддерживаемых функций приведен в таблице.
Перед тем, как станет возможным осуществлять запись-чтение текста необходимо описать служебные функции putch() и getch(), кроме них могут потребоваться getche() и kbhit(). В каталоге с примерами есть программы, где вы можите посмотреть реальную реализацию этих и других функций. |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | |||||||||||||||||||||||||||