功能类似于数组中的东西

时间:2014-09-24 15:20:14

标签: c anonymous-function

我如何能够以特定方式使用数组中的函数。现在,我把它设置成这样:

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

1 个答案:

答案 0 :(得分:2)

在C中你不能拥有匿名功能。

在C ++ 11中,非捕获lambda会衰减为普通函数指针,因此您可以这样做:

typedef void (*func_ptr)(void);
const func_ptr functions[] = {
    []() { something = blah; },
    []() { anotherthing = blahblah; }
};