c语言(4)

版权声明:吴亚彪 https://blog.csdn.net/weixin_44288260/article/details/86498020

while中使用return

int main(void)
{
    while(1)
    {
        return 0;
        printf("hello\n");
        printf("word\n");
    }
 }

回调函数

void PrintfText()
{
    printf("Hello World!\n");
}

//定义实现回调函数的"调用函数" 调用者
void CallPrintfText(void (*callfuct)())
{
    callfuct();
}

//实现函数回调
int main(int argc,char* argv[])
{
    int a;
    scanf("%d",&a);
    while(a--)

    CallPrintfText(PrintfText);
    return 0;
}

case后不加break

int a;
    scanf("%d",&a);
    switch(a)
    {
        case 0 :
            printf("case 0\n");
            break;
        case 1:
            printf("case 1\n");
        case 2:
            printf("case 2\t");
            break;
        default:
            printf("case default");
            break;
    }

此时如果输入a=1;
会输出case1,case2,直到遇到break

函数指针数组

typedef void(*FP)(u8,u16);
FP fp_arry[3]={show_voltage_number,show_current_number,show_charge_number};
(*fp_arry[0])(6,7);//使用show_voltage_number函数,传递参数6,7

结构体数组

typedef void (*FP)(void);
typedef struct
{
	u8 key_state_index;
	u8 key_down_state;
	u8 key_up_state;
	u8 key_cr_state;
	u8 key_back_state;
	FP current_op;
}KEY_STR;
 KEY_STR  key_tab[KEY_NUM] =
{
	{0,0,0,1,0,lcd_pic},
	{1,2,7,8,0,lcd_pic1},
	{2,3,1,9,0,lcd_pic2},
	{3,4,2,10,0,lcd_pic3},
	{4,5,3,11,0,lcd_pic4},
	{5,6,4,12,0,lcd_pic5},
	{6,7,5,13,0,lcd_pic6},
	{7,1,6,14,0,lcd_pic7},
	{8,8,8,8,1,lcd_pic8},
	{9,9,9,9,2,lcd_pic9},
	{10,10,10,10,3,lcd_pic10},
	{11,11,11,11,4,lcd_pic11},
	{12,12,12,12,5,lcd_pic12},
	{13,13,13,13,6,lcd_pic13},
	{14,14,14,14,7,lcd_pic14},
};

猜你喜欢

转载自blog.csdn.net/weixin_44288260/article/details/86498020