#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. 用slf4j+logback实现多功能日志解决方案 --- 转

    大家都知道,slf4j是原来log4j的作者写的一个新的日志组件,意思是简单日志门面接口,可以跟其他日志组件配合使用,常用的配合是slf4j+logback,无论从功能上还是从性能上都较之log4j有 ...

  2. POJ 3140-Contestants Division(树形dp)

    题意: n给节点的树,分成两个联通分支,使它们大小的绝对值最小,求这个最小值. 分析: 分成两个联通分支,即删除一条边,开始看到m(边数)和n(点数)没什么关系,但题目说的是一棵树,则m==n-1,求 ...

  3. 关于.jar的文件在cmd中无法连接数据库的问题

    我使用一个.jar的文件,想在cmd中以“java -jar *.jar”的格式运行,方便system.println()一些信息,该jar包中包含数据库连接内容,在我关闭comodo防火墙和wind ...

  4. Apache启动是出现the requested operation has failed

    出现的原因: 原因一:80端口占用例如IIS,另外就是迅雷. 原因二:软件冲突装了某些软件会使apache无法启动如Dr.com 你打开网络连接->TcpIp属性->高级->WINS ...

  5. Python subprocess Popen

    目的:顺序执行进程  在Bash里面类似  a.sh && b.sh && c.sh 先来说下Popen这个函数 class subprocess.Popen(args ...

  6. Python解释器

    当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件.要运行代码,就需要Python解释器去执行.py文件. 由于整个Python语言从规范到解释器都是开源的 ...

  7. 转:并查集总结 例题:hdoj 1232 畅通工程

    引述之类的就免了,我们现在做题碰到的并查集基础题目大都是连通城市(或者村庄学校),接下来我们就称每一个城市为一个元素.我们解决此类题目运用的是树结构,每个集合用一棵树表示,而树的节点用于存储集合中的元 ...

  8. [struts2]jstl标签用法技巧

    1.<c:if test="${var} != null"></c:if> 2. <c:foreach var="singleVar&quo ...

  9. UI进阶 多线程

    一.多线程概述 程序.进程.线程 程序:由源代码生成的可执行应用.(例如:QQ.app) 进程:一个正在运行的程序可以看做一个进程.(例如:正在运行的QQ就是一个进程),进程拥有独立运行所需的全部资源 ...

  10. Microsoft .NET Pet Shop 4

    Microsoft .NET Pet Shop 4:将 ASP.NET 1.1 应用程序迁移到 2.0 299(共 313)对本文的评价是有帮助 - 评价此主题 发布日期 : 2006-5-9 | 更 ...