#define ABC 3
#define A 0
#define B 1
#define C 2
void function1(int *i)
{
}
void function2(int *i)
{
}
void function3(int *i)
{
}
int main(int argc, char *argv[])
{
void (*foo[ABC]) (int *i) = {
[A] = function1,
[B] = function2,
[C] = function3
};
(void)foo; // avoid "unused variable" error
return 0;
}
I2RlZmluZSBBQkMgMwoKI2RlZmluZSBBIDAKI2RlZmluZSBCIDEKI2RlZmluZSBDIDIKCnZvaWQgZnVuY3Rpb24xKGludCAqaSkKewp9Cgp2b2lkIGZ1bmN0aW9uMihpbnQgKmkpCnsKfQoKdm9pZCBmdW5jdGlvbjMoaW50ICppKQp7Cn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKICAgIHZvaWQgKCpmb29bQUJDXSkgKGludCAqaSkgPSB7CiAgICAgICAgW0FdID0gZnVuY3Rpb24xLAogICAgICAgIFtCXSA9IGZ1bmN0aW9uMiwKICAgICAgICBbQ10gPSBmdW5jdGlvbjMKICAgIH07CgoJKHZvaWQpZm9vOyAvLyBhdm9pZCAidW51c2VkIHZhcmlhYmxlIiBlcnJvcgoKICAgIHJldHVybiAwOwp9Cg==