C言語なら俺に聞け! Part 75
■ このスレッドは過去ログ倉庫に格納されています
0672我ながら厨房くさ〜
NGNGint g_int = 1234;
int *bar(void)
{
return &g_int;
}
int ((*foo(void))(void))
{
return (void*)bar; /* ←気持ち悪い */
}
int main()
{
int (*(*(*hoge)(void))(void)) = foo;
int (*(*geho)(void)) = hoge();
return printf("%d\n" *(,geho()));
}
上のプログラムを関数ポインタの勉強がてら作ってみたのですが、
コメント部のキャストを行わないと、
「式は引数リストのない関数に対して評価します」
という warning が出ます。でも void* にキャストするのも気持ち悪い。
かといって関数ポインタ型へのキャストは不正とされます。
なにか他の(キャスト?)方法はあるのでしょうか?
それともなんか変なことやってんのかな?
■ このスレッドは過去ログ倉庫に格納されています