Wpis z mikrobloga

Do s jest przypisywany adres zaalokowanej tablicy 5 wskaźników na double lub jest rzucony wyjątek. Zakładając, że s ma odpowiedni typ, oczywiście.
  • Odpowiedz
@JareQ: Powyższy przykład najpierw definiuje nowy typ który jest wskaźnikiem do funkcji, a później tworzy tablice f która zawiera wskaźniki do fun (czyli w skrócie tablica wskaźników do wskaźnika do funkcji) tak ?
  • Odpowiedz
@JareQ: typedef nie definiuje nowego typu.

typedef double (*fun)(double, double); fun *f[10];
fun to wskaźnik na funkcję zwracającą double i przyjmującą 2 argumenty typu double

f to tablica 10 wskaźników na wskaźnik na funkcję zwracającą double i przyjmującą 2 argumenty typu double
  • Odpowiedz
@KrzaQ2:

2013-02-02 23:07:32 <@KrzaQ> { cout << TYPE_DESC(f); } typedef double (*fun)(double, double); fun *f[10];
2013-02-02 23:07:36 < gcc> lvalue array of 10 pointers to pointers to functions taking 2 doubles and returning doubles
  • Odpowiedz
@JareQ: cytując standard:

If the decl-specifier-seq contains the typedef specifier, the declaration is called a typedef declaration and the


name of each init-declarator is declared to be a typedef-name, synonymous with its associated type (7.1.3).


If the decl-specifier-seq contains no typedef specifier, the declaration is called a function declaration if the


type associated with the name is a function type (8.3.5) and an object declaration otherwise.

To jest po prostu alias,
  • Odpowiedz
typedef double (fun)(double, double); fun f[10];
fun bez zmian

f to tablica 10 wskaźników na na funkcję zwracającą double i przyjmującą 2 argumenty typu double
  • Odpowiedz