恳请大家帮忙 还是那个问题。
if(条件A) { switch( a ++) { case 1: corner1(); break; case 2: corner2(); break; case 3: corner3(); break; }} else if(条件B){ corner a ();}
bool isA = false;bool isB = false;if (条件A){ isA = true;}else if (条件B){ isB = true;}if (isA || isB){ switch( a ++) { case 1: corner1(); break; case 2: corner2(); break; case 3: corner3(); break; //... case a: if (isB) { cornera(); } break; }}
[解决办法]
加个标识来判断,就像楼上这个的。
[解决办法]
推存 2楼
[解决办法]
好像不怎么复杂吧
[解决办法]
建议楼主把问题描述得再详细一点,否则说不定你又要另开一贴来问。
如果仅从楼主给出的说法,感觉并不复杂的,或许和楼主试图传递的意思有出入吧。
[解决办法]
#include <stdio.h>void corner0(){ printf( "This is corner0!\n" );}void corner1(){ printf( "This is corner1!\n" );}void corner2(){ printf( "This is corner2!\n" );}void corner3(){ printf( "This is corner3!\n" );}int main(){ int a = 3; //定义函数指针数组,变量名为p,元素个数为4,每一个元素指向一个形如void corner1() 无参数无返回值的函数 void ( *p[4] )() = { corner0, corner1, corner2, corner3 }; //测试调用函数 p[0](); printf( "a=%d\n", a ); p[a](); a = 2; printf( "a=%d\n", a ); p[a]();}
[解决办法]
那么 你可以定义一个函数指针数组,
然后,在
else if(条件B){ corner a ();}
[解决办法]
if(条件A){ p[a++]();}