【发布时间】:2017-04-28 03:37:43
【问题描述】:
我正在努力学习 c,所以我尝试阅读一些源代码。
但我不知道这可能意味着什么:
static const char*(*const functab[])(void)={
ram,date
};
第一部分,static const char* 很好,因为它似乎是一个函数(具有void 类型的参数),static 应该意味着它只在这个文件中可见,const char* 应该意味着值不能更改,但地址可以更改。
但在这种情况下,在函数名后面的最后一部分之后没有意义,就像
static const char * date(void);
static const char * ram(void);
不是函数名,而是 (*const functab[]),一个名为 functab 的包含地址的 const 数组?
这是某种包含函数 ram 和 date 的包装函数吗?声明数组的一些替代方法?
【问题讨论】:
-
这可能会有所帮助:cdecl.org.
-
@paulortorrens 不,可能不会,那个网站很愚蠢。在 OP 的示例中尝试完美的代码,你会得到“语法错误”。我假设他们指的是 cdecl.org 源代码中的语法错误...
-
原来 cdecl.org 无法识别 static 关键字。多么可悲。
标签: c arrays pointers constants function-pointers