1.函数指针数组的的写法
#include<stdio.h>
void func_0(void);
void func_1(void);
void func_2(void);
void func_3(void);
typedef struct
{
void (*Func)(void);
int cmd1,cmd2;
}Fc_type;
const Fc_type function_arry[]=
{
{func_0,0x01,0x00},
{func_1,0x02,0x01},
{func_2,0x03,0x00},
{func_3,0x04,0x01},
{NULL ,0xff,0xff}
};
int i=1;
void func_0(void)
{
printf("我是第%d个函数!\n",i++);
}
void func_1(void)
{
printf("我是第%d个函数!\n",i++);
}
void func_2(void)
{
printf("我是第%d个函数!\n",i++);
}
void func_3(void)
{
printf("我是第%d个函数!\n",i++);
}
void CmdProcess(void)
{
int j=-1;
while(function_arry[++j].cmd1 !=0xff)
{
function_arry[j].Func();
}
printf("j = %d\n",j);
}
void main()
{
CmdProcess();
}
2.小功能的实现(组合键)
#include<stdio.h>
#include<string.h>
void Comkey(int n)
{
static int key_buff[5];
static int flag_buff[5]={9,8,7,6,5};
memcpy(key_buff,key_buff+1,5-1);
key_buff[4] = n;
if( 0 == memcmp(key_buff,flag_buff,5))
{
printf("调试界面!\n");
}
}
int main()
{
int n;
while(1)
{
scanf("%d",&n);
Comkey(n);
}
return 0;
}
3.出现的extern "c"的写法
- (意思是若定义了C++,则加上extern “C”的花括号,表示C和C++的不同之处)
#ifdef __cplusplus
extern "C"
{
#endif
#define printf(...) ((void)0)
#define scanf(...) ((void*)0)
#ifdef __cplusplus
}
#endif