Что делает объявление “ОБРАТНОГО ВЫЗОВА” в C, делают?

Если вы достаточно счастливы, чтобы получить элемент, используя текстовое содержимое, вы можете сделать это с помощью xPath. Вот простой пример JavaScript с кнопкой для демонстрации ...

   // xPath of element you want to find
    var xpath = "//a[contains(text(),'Join now')]";
    var matchingElement = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    
// Button code for demonstration purposes
    document.getElementById("test").onclick = function () {   
alert(matchingElement.id); };
   <a id="not-this" href="javascript:void(0);">Don't join.</a>
   <a id="4edd60cf-0462-4b8b-9b60-1d41911f3309" href="javascript:void(0);">Join now.</a>
    <a id="not-this" href="javascript:void(0);">Now join.</a>
    <br><br>
    <button id="test">Get the ID</button>

10
задан Greg Rogers 9 February 2009 в 23:24
поделиться

4 ответа

"ОБРАТНЫЙ ВЫЗОВ" является соглашением о вызовах. Существуют другие виды соглашений о вызовах. ОБРАТНЫЙ ВЫЗОВ совпадает с __ stdcall.

http://www.codeguru.com/cpp/cpp/cpp_mfc/callbacks/article.php/c10557

Еще некоторая информация в блоге Raymond Chen:

http://blogs.msdn.com/oldnewthing/archive/2004/01/08/48616.aspx

15
ответ дан 3 December 2019 в 18:36
поделиться

Короткая сводка новостей из Блога Raymond Chen:

Большая вещь о соглашениях о вызовах по x86 платформе состоит в том, что существуют так многие для выбора из!

C соглашение о вызовах (__ cdecl)

Соглашение о вызовах C ограничивается, потому что оно позволяет использование функций с переменным количеством параметров. Это в значительной степени требует, чтобы стек был убран вызывающими сторонами и что параметры быть продвинутым справа налево, так, чтобы первый параметр был в фиксированной позиции относительно вершины стека. Таким образом: Вызывающая сторона чистит стек, параметры, продвинутые справа налево.

Соглашение о вызовах Паскаля (__ Паскаль)

Паскаль не поддерживает функции с переменным количеством параметров, таким образом, он может использовать чистую вызываемым конвенцию. Параметры продвинуты слева направо. Почти все функции Win16 экспортируются как соглашение о вызовах Паскаля. Чистая вызываемым конвенция сохраняет три байта в каждом извещателе с фиксированными издержками двух байтов за функцию. Это было также незначительно быстрее. На Win16, сохраняя несколько сотен байтов и нескольких циклах было грандиозное предприятие.Примечание: Соглашение о вызовах Фортрана (__ Фортран) совпадает с соглашением о вызовах Паскаля

4
ответ дан 3 December 2019 в 18:36
поделиться

Это - соглашение о вызовах. Требуется при передаче указателя на эту функцию к Windows API, который позже вызывает ту функцию. Соглашение о вызовах Windows отличается от соглашения о вызовах C, поэтому необходимо указать к компилятору, что WndProc () является особенным, и что ему нужны другой запуск и код очистки.

2
ответ дан 3 December 2019 в 18:36
поделиться

Это - соглашение о вызовах, и Delphi имеет их также. Попытайтесь искать 'cdecl' в Справке Delphi. В Delphi (или Object Pascal как мы старым произведениям нравится называть его) соглашения о вызовах появляются после объявления функции, как это;

function MyFunction(X, Y: Real): Real; cdecl;
0
ответ дан 3 December 2019 в 18:36
поделиться
Другие вопросы по тегам:

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