Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Спецификаторы (модификаторы) в С++

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Спецификаторы (модификаторы) в С++
Имя
Сообщение << Старые топики   Новые топики >>
Спецификаторы (модификаторы) в С++ - 2005-02-01 00:04:59   
Stork

Сообщений: 65
Оценки: 0
Присоединился: 2005-01-19 15:50:50
Народ моглибы по русски разъяснить применение Спецификаторов __cdecl, __stdcall, __fastcall. В книгах как-то заумно написано, а в MSDN прямое их назначение, но не объесняется как, зачем и почему.
Post #: 1
Спецификаторы (модификаторы) в С++ - 2005-02-01 00:29:04   
SomewhereSomehow

Сообщений: 66
Оценки: 0
Присоединился: 2004-06-17 22:15:49
Данные спецификаторы определяют порядок передачи аргументов в функцию и способ
__stdcall - стандартная передача параметров, идет через стек
__fastcall - быстрая передача параметров идет через регистры
__cdecl - параметры передаются начиная с первого, через стэк, но тот кто вызвал эту функцию обязан сам позаботится об удалении данных из стека.
__pascal - параметры передаются начиная с последнего, через стэк
Post #: 2
Спецификаторы (модификаторы) в С++ - 2005-02-01 00:41:36   
Stork

Сообщений: 65
Оценки: 0
Присоединился: 2005-01-19 15:50:50
А как можно удалить данные из стека если функция вызвана с модом __cdecl. И также надо удолять параметры исли функция вызвана с модом __pascal??? И в определение функции модификатор должен присутствовать???
Post #: 3
Спецификаторы (модификаторы) в С++ - 2005-02-01 01:40:17   
SomewhereSomehow

Сообщений: 66
Оценки: 0
Присоединился: 2004-06-17 22:15:49
Открываешь исходник, Нажимаешь Del на клаве и делетишь-делетишь-делетишь все параметры =) Тока так с ними и бороться. А так вообще за тебя со всем этим справится компилятор, если удаляется "автоматически" , то удаляется перед тем местом где процедура завершается (говорят уменьшает размер кода ибо компилятор не вставляет после каждого вызова процедуры код который будет чистить стэк), а если "вручную", то компилятор удаляет параметры из того места где процедура вызвана (использыуется для передачи неопределенного числа параметров) так шо не парься. __фасткол и погнали наши городских =)
Post #: 4
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Спецификаторы (модификаторы) в С++







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.