Студопедия — 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; просмотров: 366. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Значення творчості Г.Сковороди для розвитку української культури Важливий внесок в історію всієї духовної культури українського народу та її барокової літературно-філософської традиції зробив, зокрема, Григорій Савич Сковорода (1722—1794 pp...

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

Случайной величины Плотностью распределения вероятностей непрерывной случайной величины Х называют функцию f(x) – первую производную от функции распределения F(x): Понятие плотность распределения вероятностей случайной величины Х для дискретной величины неприменима...

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

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