我想初始化一个大小为5的指针数组,该数组包含指向没有参数且返回int的函数的指针(可以是满足这些要求的任何函数)。

到目前为止,这是我尝试过的操作,但是出现语法错误:

int (*func)() fparr[5] = int (*func)();

这种语法有什么问题?

最佳答案

如果要提供作为数组默认内容的函数称为func,则

  • 您最好使用typedef
  • 您必须使用数组初始化程序

  • 考虑:
    typedef int (*IntFunc)(void);
    IntFunc fparr[5] = { func, func, func, func, func };
    

    如果您不想使用typedef,则采用不太可读的方法:
    int (*fparr[5])(void) = { func, func, func, func, func };
    

    关于c - c-初始化一个指向函数的指针数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14071378/

    10-11 22:50
    查看更多