Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Модификаторы cdecl и pascal




Модификаторы cdecl и pascal влияют на порядок размещения аргументов в вызовах функций и определяют вид внешних имен программы.

В языке С порядок передачи параметров указывает модифика­тор типа функции cdecl. Он устанавливается специальным па­раметром IDЕ (Мain Menu-Options-Compi1er-Code Generation­Calling Coпvention для Тurbо С версии 2.01 или Мain Menu­Options-Compile-Entry/Exit Code в Вorland С++) или задается опцией командной строки (-р-). По умолчанию выбирается cdecl. Альтернативой Си-порядку передачи параметров являет­ся последовaтельность передачи параметров, принятая в язы­ке pascal, - копии аргументов "пyшиpуются" в стек, начиная с первого. Как результат, - копия первого аргумента имеет в опе­ративной памяти больший адрес, чем копия последнего. На такой порядок передачи параметров указывает модифика­тор типа функции pascal. Явное задание порядка передачи от­меняет порядок передачи, принимаемый компилятором по умолчанию. Модификаторы типа функции должны совпадать как в прототипе, так и в определении функции. В языке pзsса1 не поддерживается переменное число аргументов и функция с модификатором pascal должна иметь фиксированное число аргументов. Модификатор типа функциu pascal требуется при разработке Си-функций, кoтoрые будут вызываться из Pascal-программ. Модификатор pascal приписанный функциям и внешним переменным определяет и их внешнее представление. В этом случае все буквы идентификаторов преобразуются в заглавные и снабжаются лидирующим символом подчеркивания.

Пример

int pascal zummer(void); // внешнее имя приобретает вид _ZUMMER.

int cdecl Bag; // внешнее имя приобретает вид _Bag

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

Вопросы для самоконтроля

  • Как выполняется макроподстановка в процессе компиляции С-программ?
  • Для чего используется макрокоманда #undef?
  • В чем заключается разница в указании параметров макрокоманды #include?
  • Какие макрокоманды используются для условной компиляции?
  • Назначение модификаторов типов const и volatile?
  • Назначение модификаторов типов cdecl и pascal?

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных