typedef的使用1——引入

#include <stdio.h>
#include <string.h>

//#define _CRT_SRCURE_NO_WARNING

#pragma warning(disable:4996)
typedef unsigned int uint;
typedef unsigned char byte;

struct student {
    int ID;
    char *name;
    int age;
};
//这样我们之前写的学生类 就会有一个更像javaBean的名字 Student
typedef struct student Student;


//回顾我们一个字符串拼接的函数

const char *func1(const char *str1,const char *str2){

    if (str1 != NULL&&str2 != NULL){
    
        char * p = malloc(strlen(str1) + strlen(str2) + 1);
        strcpy(p, str1);
        strcat(p, str2);
        return p;
    
    }

}
typedef const char *Func1 (const char *, const char *);
//typedef是类型定义的意思。我们把一个函数定义叫做Func1.这个函数是:是具有两个参数并且返回值是const char* 的,并且这两个参数 都是const char * 类型的。

//这样我们的回调函数就比较好写了

//回调函数还是要多背几遍的。

const char *mybackcall(Func1, const char*, const char *);

const char *mybackcall1(const char *func1(const char *, const char *), const char *, const char *);

const char *mybackcall2(Func1 *f, const char *s1, const char *s2){
    return f(s1, s2);
}
const char *mybackcall3(const char *(func1(const char *, const char *)), const char *s1, const char *s2){
    return func1(s1, s2);
}
typedef const char *(* Func2) (const char*, const char *);

const char * myback(Func2, const char *, const char *);

const char * myback1(Func2 f, const char * str1, const char * str2){
    return f(str1, str2);
}

const char * myback3(const char *(*)(const char *, const char *), const char *, const char *);

const char * myback2(const char * (*f)(const char *, const char *), const char *str1, const char *str2){
    return f(str1, str2);
}









int main(){

    Func2 f1[10];
    Func1 *f2[10];

    uint a = 23;
    byte b = 65;
    printf("a:%d
b:%c
", a, b);
    
    char *p = func1("hello", "world");
    printf("%s
", p);
    free(p);


    getchar();

    return 0;

}
原文地址:https://www.cnblogs.com/letben/p/5243388.html