#include <stdio.h>
//基本类型
typedef int MyInt;
//可以对typedef产生的类型名二次起别名
typedef MyInt MyInt2;
// 给指针类型char *起一个新的类型名称String
typedef char * String;
//给结构体定义别名
//方法一:先定义类型,再声明别名
struct Student1
{
int age;
};
typedef struct Student1 MyStu1;
//方法二:定义类型的同时声明别名
typedef struct Student2
{
int age;
} MyStu2;
//方法三:定义类型的同时声明别名,此时省略了结构体名称
typedef struct
{
int age;
} MyStu3;
//使用枚举的方法和结构体类似
//定义结构体指针
//方法一:先定义类型,在定义指针别名
struct Student4
{
int age;
};
typedef struct Student4 *MyStu4;
//方法二:定义类型的同时定义指针别名
typedef struct Student5
{
int age;
} *MyStu5;
//使用typedef定义函数指针类型的别名,此时MyPoint就是函数指针类型
typedef void (*MyPoint)(int, int);
void test(int a, int b);
int main()
{
/*************************************************************
* typedef:给已经存在的类型起一个新的名称,该类型可以是系统类型,也可以是自定义类型
* 2.使用场合:
* 1、基本数据类型
* 2、指针
* 3、结构体
* 4、枚举
* 5、指向函数的指针
* 注意:使用typedef产生的类型和元类型的作用一样
* typedef的某些功能使用宏定义也可以实现但是,宏定义仅仅只是替换,使用不当会发生错误
*************************************************************/
MyInt a = ;
printf("a = %d\n", a);
MyInt2 b = ;
printf("b = %d\n", b);
String str = "abc";
printf("str = %s\n", str);
MyStu1 stu1 = {};
MyStu2 stu2 = {};
MyStu3 stu3 = {};
printf("stu1.age = %d \n", stu1.age);
printf("stu2.age = %d \n", stu2.age);
printf("stu3.age = %d \n", stu3.age);
struct Student4 Stu4 = {};
MyStu4 pstu4 = &Stu4;
printf("stu4.age = %d \n", pstu4->age);
struct Student5 Stu5 = {};
MyStu5 pstu5 = &Stu5;
printf("stu5.age = %d \n", pstu5->age);
MyPoint p ;
p = test;
p(, );
return ;
}
void test(int a, int b)
{
printf("a + b = %d\n", a + b);
return;
}
a =
b =
str = abc
stu1.age =
stu2.age =
stu3.age =
stu4.age =
stu5.age =
a + b =

C语言typedef的更多相关文章

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

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

  2. c语言typedef的用法-解惑阿!很多天书般的东西解释的不错(转)

    转自(http://www.cnblogs.com/wchhuangya/archive/2009/12/25/1632160.html) 一.基本概念剖析 int* (*a[5])(int, cha ...

  3. C语言学习及应用笔记之五:C语言typedef关键字及其使用

    在C语言中有一个typedef关键字,其用来定义用户自定义类型.当然,并不是真的创造了一种数据类型,而是给已有的或者符合型的以及复杂的数据类型取一个我们自己更容易理解的别名.总之,可以使用typede ...

  4. C语言 - typedef struct 与struct

    c语言中可以选择的数据类型太少了. Java中有一些高级的数据结构. 结构中能够存放基本的数据类型以及其他的结构. 结构定义,一般放在程序的开头部分. 一般放在include之后. #include ...

  5. C语言typedef详解

    原文链接 C语言允许用户使用 typedef 关键字来定义自己习惯的数据类型名称,来替代系统默认的基本类型名称.数组类型名称.指针类型名称与用户自定义的结构型名称.共用型名称.枚举型名称等.一旦用户在 ...

  6. C语言typedef的用法详解

    C语言允许为一个数据类型起一个新的别名,就像给人起"绰号"一样. 起别名的目的不是为了提高程序运行效率,而是为了编码方便.例如有一个结构体的名字是 stu,要想定义一个结构体变量就 ...

  7. C 语言 typedef

    虽然#define语句看起来象typedef,但实际上却有本质上的差别.对于#define来说,仅在编译前对源代码进行了字符串替换处理:而对于typedef来说,它建立了一个新的数据类型别名.由此可见 ...

  8. c语言 typedef

      在C和C++编程语言中,typedef是一个关键字.它用来对一个资料类型取一个新名字.目的是为了使源代码更易于阅读和理解. 来看以下程式码: int coxes; int jaffa; ... c ...

  9. c语言typedef关键字的理解

    1.typedef的定义 很多人认为typedef 是定义新的数据类型,这可能与这个关键字有关.本来嘛,type 是数据类型的意思:def(ine)是定义的意思,合起来就是定义数据类型啦. 不过很遗憾 ...

  10. c语言typedef运用之结构体

    #include <stdio.h> #include <stdlib.h> typedef struct stu { ]; int score; }stu_info; int ...

随机推荐

  1. 42-python基础-python3-字符串-原始字符串

    原始字符串 可以在字符串开始的引号之前加上 r,使它成为原始字符串. “原始字符串”完全忽略所有的转义字符,打印出字符串中所有的倒斜杠. 如果输入的字符串包含许多倒斜杠,比如正则表达式字符串,那么原始 ...

  2. 16-python基础-字典

    1.字典的定义 dictionary(字典)是除列表以外python之中最灵活的数据类型. 字典同样可以存储多个数据. 通常用于存储一个物体的相关信息. 和列表的区别 列表是有序的对象集合 字典是无序 ...

  3. 关于KiCAD

    关于KiCAD 使用背景 一直以来公司都在用AD作为EDA软件,但是最近公司频繁收到律师函,所以决定找一款开源的软件来代替AD,目前市场上开源的只找到了KiCAD和Easy EDA(中文版立创EDA) ...

  4. java中this和super关键字的作用

    this是对象内部指代自身的引用,同时也是解决成员变量和局部变量同名问题:this可以调用成员变量,不能调用局部变量:this也可以调用成员方法,但是在普通方法中可以省略this,在构造方法中不允许省 ...

  5. 125K低频唤醒芯片SI393可替代AS3933,GS3933

    2020年即将推出性能最出色的15–150kHz频率范围.3通道低频唤醒接收器,且具备自动天线调谐功能. SI393是15–150kHz频率范围.3通道低频唤醒接收器,且具备自动天线调谐功能,在软硬件 ...

  6. mysql rpm包安装

    MySql5.7 安装文档 1.yum repo 安装 ``` wget http://dev.mysql.com/get/mysql57-community-release-el6-11.noarc ...

  7. MapFields和并行计算(OpenFOAM)

    这几天研究了一下OpenFOAM里的MapFields和并行计算,总结一下. Case 1 先进行并行计算 SetFields 初始化流场 decomposePar 把初始化好的流场分块 mpirun ...

  8. bootstrap 好看的上传组件

    <!DOCTYPE html> <html> <head> <title></title> <link rel="style ...

  9. Attribute 实现Aop

    1.先定义一个 拦截属性 AopAttribute using System; using System.Collections.Generic; using System.Linq; using S ...

  10. Visual Studio 2012常用快捷键总结

    合理使用快捷键可以提高开发效率.收集整理一些常用的快捷键以方便查看使用 1.回到上一个光标位置/前进到下一个光标位置 1)回到上一个光标位置:使用组合键"Ctrl + -": 2) ...