文章目录

  • 一、typedef 关键字
    • 1、为复杂数据类型设置别名
    • 2、为简单数据类型设置别名
  • 二、代码示例

一、typedef 关键字


1、为复杂数据类型设置别名

使用 typedef 关键字为 复杂数据类型 定义别名 : 结构体前面加上 typedef 关键字 , 结构体类型声明最后带上 数据类型别名 ;

注意 : 定义的别名 可以与 结构体类型名称 相同 ;

/** 定义结构体, 并且为其定义别名* 别名可以与结构体的名字相同* 将 struct student2 数据类型重命名为 student2 类型* 可以直接使用 student2 作为数据类型 ,* 不比带上 struct 关键字*/
typedef struct student2
{char name[20];  // 名字int age;        // 年龄
}student2;

使用复杂类型定义别名 , 在定义该结构体变量时 , 可以 省略 struct 关键字 ;

    // 使用类型别名作为结构体的变量类型// 省略 struct 关键字student2 s2;

如果没有 typedef 定义别名 , 定义类型时 , 必须带 struct 关键字 , 如下 :

struct student2 s2;

2、为简单数据类型设置别名

使用 typedef 关键字 , 为简单类型进行重命名 , 重命名的 数据类型的别名 , 使用方式 与 简单类型 一模一样 ;

/** 对简单类型进行重命名* 将 int 数据类型重命名为 u_32 类型*/
typedef int u_32;

二、代码示例


代码示例 :

#include <stdio.h>// 学生类型结构体
struct student
{char name[20];  // 名字int age;        // 年龄
};/** 定义结构体, 并且为其定义别名* 别名可以与结构体的名字相同* 将 struct student2 数据类型重命名为 student2 类型* 可以直接使用 student2 作为数据类型 ,* 不比带上 struct 关键字*/
typedef struct student2
{char name[20];  // 名字int age;        // 年龄
}student2;/** 对简单类型进行重命名* 将 int 数据类型重命名为 u_32 类型*/
typedef int u_32;/** 函数入口*/
int main(int argc, char **args)
{// 声明结构体变量struct student s;// 使用类型别名作为结构体的变量类型// 省略 struct 关键字student2 s2;printf("sizeof(struct student)=%d, sizeof(student2)=%d, sizeof(u_32)=%d\n",sizeof(struct student),sizeof(student2),sizeof(u_32));return 0;
}

执行结果 :

sizeof(struct student)=24, sizeof(student2)=24, sizeof(u_32)=4

【C 语言】数据类型本质 ( 数据类型别名 | typedef 关键字 | 为复杂数据类型设置别名 | 为简单数据类型设置别名 )相关推荐

  1. C语言应用笔记:C语言typedef关键字及其使用

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

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

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

  3. C语言 typedef关键字

    C语言支持一种叫作typedef的机制,它允许为各种数据类型定义新的名字(代号),typedef声明的写法与普通数据类型的声明基本相同,只是把typedef关键字放在声明的前面.例如: int* Po ...

  4. C语言——结构体struct与typedef的使用

    我们常常在某些C语言代码中看到有时候typedef关键字和struct一起连用定义结构体,有时候只用struct关键字直接定义结构体,在此记录两者的一些用法,给自己做一个笔记,希望对大家也有所帮助.如 ...

  5. JAVA的简单数据类型和复合数据类型

    Java的简单数据类型 数据类型 数据类型就是对内存位置的抽象表达.程序员可以利用多种数据类型:某些由编程语言定义,某些由外部库定义,还有些则由程序员来定义.很多编程语言都依赖于特定的计算机类型和对数 ...

  6. 【C 语言】数据类型本质 ( 数据类型 | 数据类型本质 | 数组地址 | 数组首元素地址 )

    文章目录 一.数据类型 二.数据类型本质 ( 数组地址 | 数组首元素地址 ) 一.数据类型 " 数据类型 " 是 数据的抽象 ; 相同类型的数据 , 表示形式相同 , 存储格式相 ...

  7. C语言数据类型本质分析

    C语言数据类型本质分析 数据类型概念 数据类型的本质思考 数据类型的本质 数据类型大小 数据类型别名 数据类型的封装 数据类型总结与扩展 思考1 思考2 数据类型概念 "类型"是 ...

  8. 【C 语言】数据类型本质 ( sizeof 函数 | 数据类型大小 )

    文章目录 一.sizeof 函数 二.数据类型大小 三.代码示例 一.sizeof 函数 sizeof() 函数可以计算 数据类型 的大小 ; sizeof (类型说明符/表达式) 可以向函数中传递 ...

  9. C语言typedef关键字—伟大的缝纫师

    关于马甲的笑话.有这样一个笑话:一个猎人在河边抓捕一条蛇,蛇逃进了水里.过一会,一个乌龟爬到岸边.猎人一把抓住这个乌龟,大声的说道:小样,别你为你穿了个马甲我就不认识你了! typedef 关键字是个 ...

最新文章

  1. 提交表单自动刷新_Web自动化测试:元素的基础操作和浏览器基础操作
  2. 中小型制造企业如何玩转MES系统?
  3. Kali Linux 安全渗透教程第四更1.3 Kali Linux简介
  4. 用iptables自动封连接数较大的IP防止CC***的方法 zt
  5. Flutter创建圆圈图标按钮
  6. Xcode自定义字体不能应用的原因
  7. springmvc怎么设置更改了界面不用重启_Microsoft Visual Studio 2019 更改语言包
  8. 城市大数据的生态模型及应用
  9. nsis 固定到任务栏
  10. Bailian2808 校门外的树【基础】
  11. 职业方向网络词汇(不定时更新)
  12. 派生类构造的时候一定要调用_分手的时候,一定要好好说再见
  13. Mac终端find命令的使用
  14. 简单介绍在线OTA几款平台
  15. 计算机动漫设计与游戏制作课程,有关计算机动漫与游戏制作专业介绍
  16. Android音视频基础知识
  17. 信息安全技术网络安全等级保护基本要求-结构变化
  18. 单目视觉SLAM综述
  19. 三阶魔方的演示-用Python实现-附源码
  20. Windows安装配置Python Scrapy环境

热门文章

  1. LeetCode: 3_Longest Substring Without Repeating Characters | 求没有重复字符的最长子串的长度 | Medium...
  2. **CI两种方式查询所返回的结果数量
  3. JavaScript开发规范 0.01版
  4. 通过SecureCRT连接Vmware中的RHEL6.3的方法
  5. 解决人际矛盾的英语口语10条
  6. 性能测试07:服务器性能测试范围
  7. NOIP2012 文化之旅
  8. WCF-Discovery的协议基础:WS-Disvovery(客户端驱动探测服务)
  9. vs.net设计器里加载派生窗口类时要执行父窗口的Form_Load方法
  10. 设置tomcat使用指定的jdk版本