我如何能够以特定方式使用数组中的函数。现在,我把它设置成这样:
typedef void (*func_ptr)(void);
const func_ptr functions[] = {a, b};
inline void a(void)
{
something = blah;
}
inline void b(void)
{
anotherthing = blahblah;
}
我在想是否有办法缩短这一点,可能是这样的:
const func_ptr functions[] = {(void)(something = blah;), (void)(anotherthing = blahblah;)};
内联函数a和b只包含一行代码,用于设置一些#define
。
答案 0 :(得分:2)
在C中你不能拥有匿名功能。
在C ++ 11中,非捕获lambda会衰减为普通函数指针,因此您可以这样做:
typedef void (*func_ptr)(void);
const func_ptr functions[] = {
[]() { something = blah; },
[]() { anotherthing = blahblah; }
};