Почему SSMS-setup-ENU для версии 17.8.1 не запущен?

Начиная с нуля функция имеет некоторый адрес памяти от того места, где они начинают выполняться. В языке сборки они называются (вызывают «адрес памяти функции»). Теперь вернитесь к функции C Если у функции есть адрес памяти, тогда с ними можно управлять указателями в C.So. По правилам C

1. Сначала вам нужно объявить указатель на функцию 2.Pass адрес желаемой функции

**** Примечание-> функции должны быть одного типа ****

Эта простая программа будет иллюстрировать каждую вещь.

#include<stdio.h>
void (*print)() ;//Declare a  Function Pointers
void sayhello();//Declare The Function Whose Address is to be passed
                //The Functions should Be of Same Type
int main()
{

 print=sayhello;//Addressof sayhello is assigned to print
 print();//print Does A call To The Function 
 return 0;
}

void sayhello()
{
 printf("\n Hello World");
}

enter image description here [/g0] После этого позволяет увидеть, как машина понимает Them.Glimpse машинной инструкции вышеуказанной программы в 32-битной архитектуре.

В области красных отметок показано, как происходит обмен и хранение адреса в eax. Затем их команда вызова на eax. eax содержит желаемый адрес функции

0
задан Ganci Sun 13 July 2018 в 09:15
поделиться