typedef クイズ
C の型宣言って初心者には難しいよね、というネタ。
ポインタ編
以下の2つの文が同じ意味になるように typedef 文を書け。
int *p;
pint p;
配列編
以下の2つの文が同じ意味になるように、typedef 文を書け。
int a[10]; aint a;
関数ポインタ編
以下のプログラムで10が出力されるように typedef を追加せよ。
#include <stdio.h> static int func() { return 10; } int main() { pfunc f = func; printf("%d\n", f()); return 0; }
関数ポインタの配列編
以下のプログラムがコンパイルできるように、pfunc_array を typedef で宣言せよ。
#include <stdio.h> #include <math.h> int main() { int i; pfunc_array funcs = {sin, cos, tan}; for (i = 0; i < 3; i++) { printf("%f\n", funcs[i](0.0)); } return 0; }