Спецификаторы (модификаторы) в С++
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
Спецификаторы (модификаторы) в С++ - 2005-02-01 00:04:59
|
|
|
Stork
Сообщений: 65
Оценки: 0
Присоединился: 2005-01-19 15:50:50
|
Народ моглибы по русски разъяснить применение Спецификаторов __cdecl, __stdcall, __fastcall. В книгах как-то заумно написано, а в MSDN прямое их назначение, но не объесняется как, зачем и почему.
|
|
|
Спецификаторы (модификаторы) в С++ - 2005-02-01 00:29:04
|
|
|
SomewhereSomehow
Сообщений: 66
Оценки: 0
Присоединился: 2004-06-17 22:15:49
|
Данные спецификаторы определяют порядок передачи аргументов в функцию и способ __stdcall - стандартная передача параметров, идет через стек __fastcall - быстрая передача параметров идет через регистры __cdecl - параметры передаются начиная с первого, через стэк, но тот кто вызвал эту функцию обязан сам позаботится об удалении данных из стека. __pascal - параметры передаются начиная с последнего, через стэк
|
|
|
Спецификаторы (модификаторы) в С++ - 2005-02-01 00:41:36
|
|
|
Stork
Сообщений: 65
Оценки: 0
Присоединился: 2005-01-19 15:50:50
|
А как можно удалить данные из стека если функция вызвана с модом __cdecl. И также надо удолять параметры исли функция вызвана с модом __pascal??? И в определение функции модификатор должен присутствовать???
|
|
|
Спецификаторы (модификаторы) в С++ - 2005-02-01 01:40:17
|
|
|
SomewhereSomehow
Сообщений: 66
Оценки: 0
Присоединился: 2004-06-17 22:15:49
|
Открываешь исходник, Нажимаешь Del на клаве и делетишь-делетишь-делетишь все параметры =) Тока так с ними и бороться. А так вообще за тебя со всем этим справится компилятор, если удаляется "автоматически" , то удаляется перед тем местом где процедура завершается (говорят уменьшает размер кода ибо компилятор не вставляет после каждого вызова процедуры код который будет чистить стэк), а если "вручную", то компилятор удаляет параметры из того места где процедура вызвана (использыуется для передачи неопределенного числа параметров) так шо не парься. __фасткол и погнали наши городских =)
|
|
|
|
|