C/C++ 中typedef关键字

2023-05-16

文章目录

  • C/C++ 中typedef关键字
    • 1.简介
    • 2.1. 常规变量类型定义
    • 2.2. 指针类型定义
    • 2.3. 结构体定义
    • 2.4. 数组类型定义
    • 2.5. 函数定义
      • 2.5.1 函数声明
      • 2.5.2 函数指针

C/C++ 中typedef关键字

1.简介

typedef 为 C 语言的关键字,作用是 为一种数据类型定义一个新名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而** 增强可移植性以及未来的可维护性**。

这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct 等)。 在编程中使用typedef 目的一般有两个,一个是给现有数据类型一个易记且意义明确的新名字,另一个是简化一些比较复杂的类型声明。

注意:typedef 并不创建新的类型,它仅仅为现有类型起一个新名字

2.1. 常规变量类型定义

typedef unsigned char BYTE
BYTE b1,b2; // 等价于unsigned char b1, b2;

在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写。该定义的作用域取决于 typedef 语句所在的位置。如果定义是在一个函数内部,它的作用域是局部的,限定在那个函数里。如果定义是在函数外部,它将具有全局作用域。

通常,这些定义使用大写字母,以提醒用户这个类型名称实际上是一个符号缩写。

2.2. 指针类型定义

typedef int *pointer;
pointer等价于int * 定义;
pointer p声明等价于int *p声明;

2.3. 结构体定义

一般结构体的定义和声明如下:

struct Student{            //Student 可有可无
char name[20];             //姓名
int age;                   //年龄
float height;              //身高
}stu;                      //stu为Student类型的结构体变量   

定义结构体变量如下:
sturct student stu1,stu2;

使用typedef声明结构体后:

typedef struct Student{  //Student 可有可无
char name[20];           //姓名
int age;                 //年龄
float height;            //身高
}Stu;                    //Stu 为类型名

定义结构体变量如下:
Stu stu1,stu2;

相当于给struct Student 起了一个别名叫做Stu。

2.4. 数组类型定义

typedef int array[2];
array等价于int [2]定义;
array a声明等价于int a[2]声明;

2.5. 函数定义

2.5.1 函数声明

typedef int func(void);
func 等价于 int (void) 类型函数
func f 声明等价于 int f(void) 声明,用于文件的函数声明;
func *pf 声明等价于 int (*pf)(void) 声明,用于函数指针的声明;

2.5.2 函数指针

typedef int (func)(void)
func 等价于 int ()(void)类型
func pf 等价于 int (*pf)(void)声明,pf 是一个函数指针变量
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++ 中typedef关键字 的相关文章

  • 关于新手创建Maven项目时,如何解决junit版本号标红

    今天用ide创建Maven项目时 xff0c pom里面的junit依赖的版本号出现标红 即版本号错误 xff09 xff0c 如下图 xff1a 找到本地仓库 xff0c 一般为 m2 repository xff0c 我的是C User
  • Debian虚拟机安装常用软件

    1 VMware 安装Debian 默认都安装完了 xff0c 尽量别联网 xff0c 联网因为Debian安装时从网上下东西 xff0c 导致安装非常慢 xff01 2 安装VMWare Tools VMWare虚拟机菜单 xff0c 安
  • java cell自动适应内容_POI cell的宽度自适应

    POI是apache提供的一个读写Excel文档的开源组件 xff0c 在操作excel时常要合并单元格 xff0c 合并单元格的方法是 xff1a sheet addMergedRegion new CellRangeAddress 1
  • 数据结构算法

    线性表 从顺序表中删除具有最小值的元素 xff08 假设唯一 xff09 并由函数返回被删元素的值 空出的位置由最后一个元素填补 xff0c 若顺序表为空则显示出错信息并退出运行 算法思想 xff1a 搜索整个顺序表 xff0c 查找最小值
  • Mysql安装及错误处理

    一ubuntu下的源码包安装 1 下载mysql 从mysql官网下载所需要的myql deb包 xff0c mysql deb包下载地址在这个地址中列出了所有系统的mysql的deb包 xff0c 我们选择mysql server 5 7
  • python学习笔记(六)——类的初始化(__init__)、类属性和类方法 和 对象

    学习本篇文章后会了解到 xff1a 类的创建 xff0c 为对象添加属性 xff0c 对象的初始化 xff0c 自定义对象的输出 xff0c 类属性和类方法的创建 1 类的定义与格式 类是对一群具有相同特征或者行为的事物的一个统称 类是一个
  • LVM管理创建PV阶段报错:Device /dev/sda* not found (or ignored by filtering)

    用 fdisk 创建 4 个分区 xff0c 然后创建 PV xff0c 发现错误如下 xff1a root 64 DB lvm pvcreate dev sda 7 8 9 10 Device dev sda7 not found or
  • GitHub推出 “AI程序员” 代码补全利器 [Copilot ] VS Code 和Idea都可以使用

    人工智能程序员 GitHub Copilot xff0c 是由微软 OpenAI GitHub 三家联合打造的 AI 编程辅助工具 xff0c 不过用户必须在主页注册报名 xff0c 才有机会访问试用 GitHub Copilot 是在数十
  • 单臂软路由实现(二) 新版OpenWrt实现VLAN划分 结合交换机进行拨号上网

    若想使用只有一个网口的设备搭建软路由 xff08 如电脑 xff09 xff0c 则可以通过划分虚拟局域网VLAN xff0c 将WAN LAN的数据分别划分至不同的广播域 利用一根网线连接交换机与电脑 xff0c 交换机和电脑对Tag标签
  • 【Ubuntu】VirtualBox 您没有查看“sf_VirtualDisk”的内容所需的权限。

    Ubuntu VirtualBox 您没有查看 sf VirtualDisk 的内容所需的权限 2017 11 12 21 24 00 weixin 34097242 阅读数 222 转自 xff1a https www cnblogs c
  • 在Linux下修改图形界面的分辨率

    这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题 xff0c 有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中 居左 居右SmartyP
  • Ubuntu-1604-LTS在虚拟机分辨率

    Ubuntu 1604 LTS在虚拟机分辨率 Myth Clemence 2016 12 27 21 30 58 2056 收藏 1 展开 问题 在VMWare内安装Ubuntu 1604 LTS xff0c 全屏后还是有黑边框 xff0c
  • 安装LINUX的过程中

    下载 xff0d 安装 xff0d 注意细节问题 xff0d 设置用户名 xff0d 权限 xff0d TMPFS xff0d 用户权限 安装VBOX插件 xff0c 还要解决个输入法 xff0c 差不多就行了
  • Linux tmpfs的使用问题解析 调整linux内核尽量用内存,而不用swap

    调整linux内核尽量用内存 xff0c 而不用swap lovemysea 2017 10 21 21 27 27 1641 收藏 分类专栏 xff1a linux unix linux unix专栏收录该内容 35 篇文章0 订阅 订阅
  • 开始,就是这样的过程

    开始 xff0c 就是这样的过程 变成了自己的人生 所以 xff0c 努力的过程 xff0c 就是这样了 人生在世 xff0c 无非名利 而我选择的是什么 选择不重要 xff0c 感受最重要 知道了山峰的高度就要攀登 知道自己的路径就要前行
  • Mate Linux 桌面的什么受GNOME 2 粉丝喜欢 ?

    导读 如果你以前听过这个传闻 xff1a 当 GNOME3 第一次发布时 xff0c 很多 GNOME 用户还没有准备好放弃 GNOME 2 Mate xff08 以马黛茶yerba mate植物命名 xff09 项目的开始是为了延续 GN
  • 寻找最快的debian源sources.list

    ubuntu和debian都有很多的源和镜像 xff0c 也有不少的国内镜像 一些爱好者为了寻找镜像已经自己 憋 出来了一些pl脚本用于寻找最快的镜像 实际上debian的爱好者早准备了更厉害的武器等你来用 xff0c 就是apt spy
  • Tmpfs

    tmpfs是一种文件系统 xff0c 在2 4以上内核 xff08 ubuntu8 4及以后的系统 xff09 已经默认开启该文件功能 首先我们体验一下 xff0c 在你的家文件中建立名为tmpfs的文件夹存一些测试文件 xff0c 然后
  • Debian 中DNS服器配置

    大赛要求 xff1a 4 DNS bind 安装bind服务 xff1b 建立sdskills com域 xff0c 为所有除Internet区域的主机或服务器建立正 反的域名解析 当出现无法解析的域名时 xff0c 向域skills co
  • 添加用户到sudoers

    xff08 用户不在sudoers文件中 xff09 处理这个问题很简单 xff0c 但应该先理解其原理再操作 首先要明白root的密码一般用户是不应改知道的 xff0c 但一般用户有时可能要用到root的一些权限 这里就有了一个 etc

随机推荐

  • 汉化linux软件

    weixin 34197488 2010 11 06 15 10 18 295 收藏 文章标签 xff1a 操作系统 版权 前方火热讨论中 xff1a 做开源 VS 赚钱 xff0c 能兼得吗 xff1f 亮出你的观点 你认为做开源是理想主
  • svn的功能及好处,以及弊端

    1 性能提高 SVN不管文件是文本还是二进制类型 xff0c 在内部都是以二进制差异比较算法来表示文件的更新部分 这表示所有的文件在文件库中都是以差异的形式储存 而且在网络上传输的 xff0c 都是较小的文件差异部分 这也使创建分支 打标签
  • 解决virtualbox共享文件夹没有访问权限的问题

    Virtualbox是一款免费试用的虚拟机软件 基本功能完全可替代需要购买或crack的VMware 在Windows主机上用Virtualbox搭建Linux虚拟机 xff0c 虚拟机和主机之间传递文件最方便的方法就是共享文件夹 假设将W
  • debian9的dns文件默认为resolv.conf

    debian9的dns文件默认为resolv conf sudo vim etc resolv conf nameserver 114 114 114 114 nameserver 8 8 8 8 这只能暂时性的修改DNS 下次系统重启后
  • 驅動Intel無線網卡(IPW2100/IPW2200)

    分类 xff1a LINUX 2007 09 05 12 38 21 驅動 Intel 無線網卡 IPW2100 IPW2200 目前 DFB 預設並沒有安裝 wireless tools xff0c 所以請手動安裝 apt get ins
  • 解决 debian TAB 键不能自动补全命令的原因

    weixin 33928137 2015 04 23 10 46 00 512 收藏 文章标签 xff1a 操作系统 版权 预约直播 xff1a 9月9日 12日 xff0c 携手众开源社区 xff0c 开发者们的年度盛会 开源大咖与开发者
  • 为debian8.2更换官方源

    最近 xff0c 配置一个韩国vps xff0c 里面用的是163的源 xff0c 感觉不如官方的好用 xff0c 就改为官方源 地址为 xff1a ftp cn debian org 输入命令 xff1a vi etc apt sourc
  • debian装好了。之后开始js的旅程了。~

    xff5e
  • 2021-08-28

    卸载无用依赖 Ubuntu卸载软件的几种方法 xff0c 你会用哪种 xff1f 九乡河龙牙 2021 01 12 07 48 13 306 收藏 1 文章标签 xff1a 卸载无用依赖 版权 9月11日 xff0c 腾讯Techo Hub
  • Debian中apache服务,htts,认证网站

    网络技能大赛A模块第一套 xff0c 涉及到apache的配置 xff0c 认证网站 加密https网站 debian中apache配置和Centos有点不太一样 xff0c 各类配置放在子配置文件中 5 Webserver apache
  • 使用Apache转发,解决jQuery的跨域问题!

    一 下载Apache 登录Apache官网 http httpd apache org 点击 Download xff08 我下载的是最新的版本 xff09 下载Windows版本 选择下载平台 ApacheHaus 选择下载相应的32或者
  • 我在这里面写学习程序的博客了

    我在这里面写学习程序的博客了
  • 第一次参加技术类的活动应该还是在十年前

    第一次参加技术类的活动应该还是在十年前 xff0c 当时应该是参加LINUX的一个技术类的活动 具体情况想不起来了 xff0c 地点应该是在中关村上地那个地方的一个什么楼里面 xff0c 当时记的好荒凉的地方 xff0c 没有什么树木 xf
  • 提问

    程序员日记吗 xff1f 我去写日记 xff0c 说着说着 xff0c 晚上吃了个火锅 然后正事没办 就算是什么也不学 xff0c 也要写日记啊 先去提问 什么是程序 xff1f 什么是语言 xff1f 程序是怎么运行的 xff1f 程序和
  • 我遭报应了?游戏过度之后的反弹反应 其实呢?

    我遭报应了 xff1f 过度游戏的之后反应反弹 其实呢 xff1f 我队最近只要沾电子产品就会起不舒服的反应 手机放在裤兜里面 xff0c 皮肤就会疼 之前在香山住的时候 xff0c 旁边有人用电脑 xff0c 之后睡醒死就像一样了 只有在
  • php是啥

    php是啥 有没有技术树 它们的因果关系是什么 xff1f 尝试着写一下 xff1f php的基本格式是什么 PHP的环境怎么装 第一个PHP的程序怎么写 PHP的组成部分有什么 差不多就是这样的问题了吧
  • ubuntu php 乱码解决,为何访问ubuntu的apache服务器下的php文件出现乱码

    这不是 apache 的问题 是 php 本身编码 xff0c 或者 数据库编码问题 给你看一篇别人的问题 让人烦恼的 PHP 43 UTF8 乱码解决方案 088月2009 一般来说 xff0c 如果将 各个文件类型 xff0c HTML
  • easyexcel读取合并单元格

    easyexcel读取合并单元格 文章目录 easyexcel读取合并单元格一 设置读取额外信息二 重写Listener中的extra 方法 xff0c 获取合并单元格的信息三 遍历合并单元格的信息四 代码清单1 UploadDataLis
  • 【Debian 10】win10 远程连接 Debian 10

    1 查询虚拟机的IP地址 使用ifconfig 查询虚拟机的IP地址 xff1a 2 出错问题 直接连接会报错 xff1a 首先需要排除一下网络原因 xff1a Debian需要安装对应的软件才能远程连接 xff1a 3 成功连接上 安装完
  • C/C++ 中typedef关键字

    文章目录 C C 43 43 中typedef关键字1 简介2 1 常规变量类型定义2 2 指针类型定义2 3 结构体定义2 4 数组类型定义2 5 函数定义2 5 1 函数声明2 5 2 函数指针 C C 43 43 中typedef关键