我想使用一些邪恶的宏魔法来生成指向文件中所有函数的指针数组。不幸的是,我仅限于 C99 并且不是非常流行的编译器。
我有一个想法,但我不确定它是否安全:
void foo(void)
{
;
}
void bar(void)
{
;
}
typedef void (*FuncPointer)(void);
FuncPointer array[2] = {foo, bar};
我试过了,它编译了,甚至可以工作,但在 C 中,这实际上并不意味着这种东西是安全的或可移植的。
对全局指针数组的初始化有任何保证吗?