Студопедия — R.7.4 Спецификации связи
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

R.7.4 Спецификации связи






С помощью спецификации-связи можно связать ($$R.3.3) фрагментыпрограмм на С++ и на другом языке: спецификация-связи: extern строка-литерал { список-описаний opt } extern строка-литерал описание список-описаний: описание список-описаний описание Требуемое связывание задается с помощью строки-литерала. Ее назначениеопределяется реализацией. Но во всех реализациях должно бытьпредусмотрено связывание с функцией на языке С ("С") и с функциейна языке С++ ("С++"). По умолчанию связывание задается как "С++",например, complex sqrt(complex); // по умолчанию связывание с C++ extern "C" { double sqrt(double); // связывание с C } Спецификации связи могут быть вложенными. Спецификация связине задает область видимости. Спецификация-связи может встретитьсятолько в файловой области видимости ($$R.3.2). Спецификация-связидля класса относится к объектам, описанным в нем, и функциям, неявляющимся членами. Спецификация-связи, относящаяся к некоторойфункции, относится и ко всем объектам и функциям, описанным в ней.Описание связи, содержащее неизвестную для реализации строку,считается ошибочным. Если функция имеет более одной спецификации-связи, то они должныбыть согласованы, т.е. задавать одну и ту же строку-литерал.Описание функции без указания спецификации-связи не должнопредшествовать первому указанию спецификации связи для этой функции.Функция может быть описана без указания спецификации связи дажепосле явного указания спецификации связи, но связывание, явно заданноев более раннем описании, не будет устранено таким описанием функции. Из множества перегруженных функций ($$R.13) с данным именемне более одной может иметь связывание с языком С, см. $$R.7.4. Связывание можно установить для объектов, например: extern "C" { //... _iobuf_iob[_NFILE]; //... int _flsbuf(unsigned,_iobuf*); //... } Когда задается спецификация связи, то функции и объекты можно описать какстатические внутри { }. Для таких функций или объектов командасвязывания игнорируется. Иначе, функция, описанная при задании связи,трактуется, как если бы она была явно описана как extern, например,ниже второе описание ошибочно ($$R.7.1.1): extern "C" double f(); static double f(); // ошибка Объект, описанный внутри конструкции extern "C" { /*... */ } все же считается определенным, а не просто описанным. Связывание объектов на С++ с объектами, определенными на другихязыках, так же как и обратное связывание, зависит от языков иреализации. Такое связывание возможно только в том случае, когдаалгоритмы размещения объектов в памяти являются достаточно схожимидля двух языков. Если для задания связи в строке-литерале из спецификации-связииспользуется имя языка программирования, то рекомендуется, чтобынаписание этого имени копировалось из документа, определяющего данныйязык, например, Ada (а не ADA) и Fortran (а не FORTRAN).







Дата добавления: 2015-09-04; просмотров: 367. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

Виды и жанры театрализованных представлений   Проживание бронируется и оплачивается слушателями самостоятельно...

Расчет концентрации титрованных растворов с помощью поправочного коэффициента При выполнении серийных анализов ГОСТ или ведомственная инструкция обычно предусматривают применение раствора заданной концентрации или заданного титра...

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.007 сек.) русская версия | украинская версия