Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Если при компиляции программ на С или C++ использовать ключ /Gz, все ссылки на функции и переменные генерируются в соответствии с типом вызовов языка Паскаль. Однако могут быть случаи, когда необходимо гарантировать, что некоторые используемые в программе идентификаторы сохраняют свое написание (различие заглавных и строчных букв) и имеют

в начале символ подчеркивания. Чаще всего, это те идентификаторы, которые используются в другом файле на С.

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

Обратите внимание на то, что все функции С и C++, имеющие прототипы в заголовочных файлах Microsoft Visual C/C++, — например, stdio.h — имеют тип cdecl. Это гарантирует возможность компоновки с библиотечными функциями, даже если при компиляции использовалась опция /Gz. Следующий пример компилировался с ключом /Gz; в нем показано, как переписать предыдущий пример для обеспечения совместимости с С:

#define TABLESIZE 30

float cdecl cfcalculate(int iscore,int iweight)

{

}

float cdecl cfscore_table[TABLESIZE];

main ()

{

int iscore 95, iweight = 10;

cfscore_table[0] = cfcalculate(iscore,iweight);

return(0);

}





Дата публикования: 2015-01-13; Прочитано: 305 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...