Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Если при компиляции программ на С или 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!