int (*)(void) int (*)(int, char**)
に関しては必須で、それ以外は環境依存ということなので、
intにしててだめな事はないんじゃないの