C言語関数ポインタおよびtypedef略記

1054 ワード

関数ポインタを定義する2つの方法
#include
#include
#include

int add(int a, int b)
{
    return a + b;
}

//void msg(char s[])
//void (*p)(char s[])          
//void (*)(char *s)          

void msg(char s[])
{
    MessageBoxA(0,s,s,0);
}


void main()
{
    //  1
    //         
    //1.         int add(int a, int b) , add      
    //2.          int (*p)(int a,int b);
    int(*padd)(int a, int b); //    
    //3.  
    padd = add;
    printf("%d", padd(11, 19));//30

    //  2.     
    void(*pmsg)(char s[]) = msg; //          
    pmsg("        ");

    getchar();
}
//  typedef           
//typedef        ,            ,    
typedef int(*PADD)(int a, int b); //*  , PADD      
typedef void(*MEG)(char s[]);

void main()
{
    PADD padd1 = add; //      
    printf("%d",padd1(11,23));
    
    MEG meg1 = msg;
    meg1("        ");

    getchar();
}

オリジナルアドレス:https://www.cnblogs.com/loveyouyou616/p/5759046.html