typedef bool func (const struct e a, void p);
Jak to rozumiec?
typedef bool func (const struct e a, void p);
Jak to rozumiec?
Tak, że od teraz typ func
to funkcja przyjmująca wskaźnik na stałą strukturę e
oraz wskaźnik na pustą wartość a zwracająca typ bool
.
Deklaruje func
jako "prototyp" funkcji, która zwraca bool
i przyjmuje 2 wskaźniki. Przy czym to nie jest to samo co deklaracja typu "wskaźnika funkcji".
#include <stdio.h>
#include <stdbool.h>
struct e { int x; };
typedef bool func (const struct e *a, void* p);
func foo;
func bar;
func baz;
typedef bool (*fptr)(const struct e* a, void* p);
int main()
{
struct e str;
void* ptr = NULL;
fptr pointer1 = foo;
pointer1(&str, ptr);
func* pointer2 = bar;
pointer2(&str, ptr);
baz(&str, ptr);
return 0;
}
bool foo(const struct e* a, void* p)
{
puts("foo");
return false;
}
bool bar(const struct e* a, void* p)
{
puts("bar");
return true;
}
bool baz(const struct e* a, void* p)
{
puts("baz");
return true;
}
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.