[C]基础语法

[C语言]数据结构

STRUCT

结构体

struct tag { 
    member-list
    member-list 
    member-list  
    ...
} variable-list ;


位域

struct 位域结构名 
{

 位域列表

};

example:

struct bs{
    int a:8;
    int b:2;
    int c:6;
}data;

ERUM

枚举语法定义格式

enum 枚举名 {枚举元素1,枚举元素2,……};

回调函数

C语言中的回到函数

Define&Use

别人的函数运行期间来回调你实现的函数

  1. 使用者自己定义函数 selfdefinefunc(){},实现这个函数的程序内容
  2. 将函数 selfdefinefunc(){},作为参数传入别人的函数serverfunc(){}中
  3. 别人的函数在runtime通过parameter(* self_define_func())参数传递的方式调用

C语言中回调函数主要通过函数指针的方式实现

#include 
typedef void (*FP)(char* s);    //结构体表示函数指针
void f1(char* s){printf("A: %s",s);}
void f2(char* s){printf("B: %s",s);}
void f3(char* s){printf("C: %s",s);}

int main(int argc,char* argv[])
{
    int funcselector = 0;   //定义一个整数用于控制待执行的函数
        
    FP f[]={f1,f2,f3};      //定义一个函数指针的数组,这里的f是一个函数指针
    
    /* Handle of funselector */       //此处用于处理funselector,控制待执行的函数
    f[funcselector]("Hello World!\n"); //正确,函数指针的数组进行下标操作可以进行函数的间接调用
    
    return 0;
} 

结构解析

回调函数主要结构有三部分组成:主函数、调用函数和被调用函数

C语言中,被调函数通常以函数指针的形式出现

//定义回调函数
void PrintfText() 
{
    printf("Hello World!\n");
}

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

//实现函数回调
int main(int argc,char* argv[])
{
    CallPrintfText(PrintfText);
    return 0;
}

你可能感兴趣的:([C]基础语法)