Как сохранить указатель функции в структуре? Я объявил typedef void (*DoRunTimeChecks)(); Как сохранить это как поле в структуре? Как его назначить? Как я могу назвать fn()? Ответ 1 Просто введите его, как и в любое другое поле: struct example { int x; DoRunTimeChecks y; }; void Function(void) { } struct example anExample = { 12, Function }; Чтобы назначить полю: anExample.y = Function; Чтобы вызвать функцию: anExample.y(); Ответ 2 #include <stdio.h> typedef void (*DoRunTimeChecks)(); struct func_struct { DoRunTimeChecks func; }; void function() { puts("hello"); } int main() { struct func_struct func_struct; func_struct.func = function; func_struct.func(); return 0; }
Ответ 1 Просто введите его, как и в любое другое поле: struct example { int x; DoRunTimeChecks y; }; void Function(void) { } struct example anExample = { 12, Function }; Чтобы назначить полю: anExample.y = Function; Чтобы вызвать функцию: anExample.y();
Ответ 2 #include <stdio.h> typedef void (*DoRunTimeChecks)(); struct func_struct { DoRunTimeChecks func; }; void function() { puts("hello"); } int main() { struct func_struct func_struct; func_struct.func = function; func_struct.func(); return 0; }