C语言-typedef关键字

news/2024/11/8 9:35:07/

一.typedef 关键字

   typedef是在C语言允许为一个数据类型起一个新的别名。它本身是一种存储类的关键字,与auto extern,mutable、static、register 等关键字不能出现在同一个表达式中。

 二、typedef用法

示例:

对于数据类型使用例如: 

 

对于指针的使用例如 

 

 

 

对于结构体的使用:

typedef struct NUM
{int a;int b;
}DATA,*PTRDATA;
   DATA data;           //定义结构体变量PTRDATA pdata;   //定义结构体指针
#include <stdio.h>typedef struct NUM
{int a;int b;
}DATA,*PTRDATA;int main()
{DATA data;           //定义结构体变量PTRDATA pdata;   //定义结构体指针pdata=&data;      //结构体指针指向结构体变量      data.a=100;data.b=500;printf("a=%d\nb=%d\n",data.a,data.b);printf("a=%d\nb=%d\n",pdata->a,pdata->b);return 0;
}

以下两种写法等同 

 

3.Typedef与define

       在单片机和操作系统中 typedef 会经常用到,它可以为某一个类型自定义名称。和#define比较类似。但是又有不同的地方。

   typedef 创建的符号只能用于数据类型,不能用于值。而#define 创建的符号可以用于值。
   typedef 是由编译器来解释,而不是预处理器。
   typedef 使用起来更加灵活。

Typedef是起别名,define是替换。

#include<stdio.h>#define SINT int *typedef int* PINT;int main()
{SINT a, b;//int *a,b;PINT p, s;//int *a,*b;
}

 示例二:

typedef int *PTR;PTR a,b;

此时a,b都是指针变量。

#define PTR int*PTR a,b;

此时等同于

int *a,b;

 只有a为指针变量,而b为整型变量。


http://www.ppmy.cn/news/172525.html

相关文章

CASS10.1 野外操作码

一、引论 CASS10.1的野外操作码由描述实体属性的野外地物码和一些描述连接关系的野外连接码组成。CASS10.1专门有一个野外操作码定义文件JCODE.DEF&#xff0c;该文件是用来描述野外操作码于CASS10.1内部编码的对应关系的&#xff0c;用户可编辑此文件使之符合自己的要求。 文…

Android 7.1 系统启动流程

源码&#xff1a; system/core/rootdir/ init.rcinit.zygote64.rc system/core/init/ init.cppinit_parser.cppsignal_handler.cpp frameworks/base/cmds/app_process/ App_main.cpp frameworks/base/core/jni/ AndroidRuntime.cpp frameworks/base/core/java/com/andr…

POI 2011 切题记

POI 2011 Conspiracy Description: 有 n n 个人,他们当中有些互相认识.现在将他们分成两个部分,第一部分的人必须互相认识,第二部分的人必须互相不认识.求分配的方案数. n&#x2264;5000" role="presentation" style="position: relative;">n…

聊聊当今市面上的国产耳机

本人并不是耳机发烧友&#xff0c;只能算是对听音乐有点要求的人。自从第一次购买森海MX500之后&#xff0c;再也不愿意用任何低劣的随配耳机了。对于低端百十块左右的耳机&#xff0c;投入的成本并不高&#xff0c;却可以带来较大提升的听歌体验。这就是我后来一直坚持购买耳机…

Android 7.1.2(Android N) Android系统启动流程

Android 7.1.2(Android N) Android系统启动流程 源码&#xff1a; system/core/rootdir/ init.rcinit.zygote64.rc system/core/init/ init.cppinit_parser.cppsignal_handler.cpp frameworks/base/cmds/app_process/ App_main.cpp frameworks/base/core/jni/ Android…

【项目总结】项目开发规范

目录 背景后端规范一、接口api规范1.接口风格接口风格统一采用restful规范2.接口api命名规范3.接口参数规范4.接口响应数据/状态码规范4.1响应数据结构4.2Http状态码使用4.3自定义code的使用&#xff08;自定义状态码暂定&#xff0c;需完善和确定&#xff09;4.4如何使用Http状…

SSE刷题集合

SSE刷题集合 3.10 彩球问题&#xff1a; 在一个袋子里装三色彩球&#xff0c;其中红色球有3个&#xff0c;白色球也有3个&#xff0c;黑色球有6个&#xff0c;问当从袋子中取出8个球时&#xff0c;共有多少种可能的方案。编程序将所有可能的方案编号输出在屏幕上。**输入信息与…

R 语言语法

标题 1. R 语言1. 什么是 R 语言1.1 概述1.2 R 的演变1.3 R 的特点1.4 R语言 环境设置 2. R语言 语法2.1 R语言 基本语法2.1.1 命令提示符2.1.2 脚本文件2.1.3 注释 2.2 R语言 数据类型2.2.1 Vectors 向量2.2.2 Lists 列表2.2.3 Matrices 矩阵2.2.4 Arrays 数组2.2.5 Factors 因…