Почему вызывающая сторона должна очистить стек в cdecl соглашении о вызовах?

Можно также сделать это от консоли команды с помощью эти sc команда:

 sc <server> start [service name]
 sc <server> stop [service name]

Использование

sc <server> query | find "SERVICE_NAME"

для получения списка сервисных названий.

опция <server> имеет форму \\ServerName

, Пример

sc \\MyServer stop schedule остановит сервис Планировщика.

6
задан Ciro Santilli 新疆改造中心法轮功六四事件 18 October 2015 в 12:03
поделиться

2 ответа

Потому что, согласно соглашению о вызовах C, вызываемая функция не будет выдавать параметры. В этом суть соглашения о вызовах.

Это позволяет такие вещи, как переменные аргументы.

19
ответ дан 8 December 2019 в 04:30
поделиться

Это было прямо там, на странице википедии над заголовком _cdecl

В этих соглашениях вызывающий объект очищает аргументы из стека, что позволяет создавать списки переменных аргументов, например. printf ().

6
ответ дан 8 December 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: