#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) + );
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[];
Func1 *f2[]; uint a = ;
byte b = ;
printf("a:%d\nb:%c\n", a, b); char *p = func1("hello", "world");
printf("%s\n", p);
free(p); getchar(); return ; }

typedef的使用1——引入的更多相关文章

  1. typedef那回事儿

    typedef是一种特殊的声明方式,不过它与普通声明(详见这里)的含义取大不相同.普通声明的主角是“变量”,它或是创建一个新变量或是对外文件变量使用前的声明:而typedef声明的主角则是“类型”,通 ...

  2. typedef可以成为你的朋友

    typedef static char int8;这个声明正确吗? A:err 所以上面那个声明是错误的. typedef为一种类型引入新的名字,而不是为变量分配空间,它并没有引入新的类型,而是为现有 ...

  3. Effective Modern C++:03转向现代C++

    07:在创建对象时注意区分()和{} 自C++11以来,指定初始化值的的方式包括使用小括号,等号,以及大括号: ); // initializer is in parentheses ; // ini ...

  4. typedef

    第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, ...

  5. C语言typedef的用法(转)

    http://www.cnblogs.com/afarmer/archive/2011/05/05/2038201.html 一.基本概念剖析 int* (*a[5])(int, char*);    ...

  6. C++ typedef用法小结 (※不能不看※)

    C++ typedef用法小结 (※不能不看※) 第一.四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如:char* pa, pb; // 这多数不 ...

  7. typedef 各类定义,各类问题大全

    第一篇:typedef struct与struct的区别 1. 基本解释 typedef为C语言的关键字,作用是为一种数据类型定义一个新名字.这里的数据类型包括内部数据类型(int,char等)和自定 ...

  8. define与typedef 区别

    1)     #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如:#define PI 3. ...

  9. (六)C语言之typedef详解

    1.typedef可以看作type define的缩写,顾名思义就是类型定义,也就是说它只是给已有的类型重新定义了一个方便使用的别名,并没有产生新的数据类型.typedef的使用与宏定义define有 ...

随机推荐

  1. application/x-www-form-urlencoded等字符编码的解释说明

    关于application/x-www-form-urlencoded等字符编码的解释说明 在Form元素的语法中,EncType表明提交数据的格式 用 Enctype 属性指定将数据回发到服务器时浏 ...

  2. Max Sub-matrix

    Max Sub-matrix 教练找的题目,目前样列过了 题意:找子矩阵的最大周长 思路:先离散每列,再枚举列(n*n),在当前枚举的两列之间求每行的和(n*n*n),但是开两个数组,一个包含两列上的 ...

  3. matlab 函数说明—conv2

    conv 是卷积的意思,2表示2维卷积.   conv2的调用形式如下: 1. C = conv2(A,B) 这是最简单的一种调用形式,B作为卷积核在A的范围内滑动,若[ma na] =size(A) ...

  4. HW6.13

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  5. 使用Mono Cecil 动态获取运行时数据 (Atribute形式 进行注入 用于写Log) [此文报考 xxx is declared in another module and needs to be imported的解决方法]-摘自网络

    目录 一:普通写法 二:注入定义 三:Weave函数 四:参数构造 五:业务编写 六:注入调用 7.  怎么调用别的程序集的方法示例 8. [is declared in another module ...

  6. 转载 SharePoint Foundation和SharePoint Server的区别

    SharePoint Server 2010用来取代MOSS 2007,它有标准版和企业版两个版本,使用SQL Server数据库: 早期版本中的STS或WSS在2010中更名为SharePoint ...

  7. R 语言画图的基本参数

    R 语言画图的基本参数 点 点的种类 点的种类参数为 pch,每一种符号对应一个数字编号 # 点有25种,为了展示25种点 x = 1:25 y = 1:25 x ## [1] 1 2 3 4 5 6 ...

  8. MySQL中UNION和UNION ALL的使用

    在数据库中,UNION和UNION ALL关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同. MySQL中的UNION UNION在进行表链接后会筛选掉重复的记录,所以在表链接后 ...

  9. Spring ProxyFactory

    ProxyFactory 是 Spring AOP的实现方式之一.下面介绍下ProxyFactory的用法. 1.接口定义 public interface UserReadService { pub ...

  10. C#基础知识之方法重载总结

    1.首先解释一下什么是方法重载?    方法重载是指在同一个类中方法同名,参数不同,调用时根据实参的形式,选择与他匹配的方法执行操作的一种技术. 这里所说的参数不同是指以下几种情况: ①  参数的类型 ...