typedef的用法

2023-05-16

typedef中声明的类型在变量名的位置出现

什么意思呢,我们回头来看。我们是怎么声明int类型变量的?

int Typename;

像上面这样,对不对?那么用typedef之后呢?把变量名的位置替换为别名:

typedef int Typename;

好了,你现在已经把为int取别名为Typename。

再来看结构体,声明普通结构体变量:

struct info
{
    char name[128];
    int length;
};
struct info Typename;

用typedef取别名,别名取代变量名的位置:

struct info
{
    char name[128];
    int length;
};
typedef struct info Typename;

好了,你现在已经为struct info取别名为Typename。
当然这可能我们平常通常使用下面这种写法:

typedef struct info
{
    char name[128];
    int length;
}Typename;

再来看函数指针类型,我们平常是如何声明函数的?

void *function(int,int);

那么使用typedef取别名呢?用别名取代函数名的位置即可:

void *(*Fun)(int,int);

不过这里需要注意用括号将这个别名括起来,并在前面加*号。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

typedef的用法 的相关文章

  • 破译 C/C++ 函数指针 typedef 的工具

    我记得曾经看到过一个网站 它破译了复杂的 C typedef 包括函数指针 该函数指针返回指向函数的函数指针 该函数返回一个数组 它将这些定义转换为可读的英文文本 指向函数的指针 返回 int 指针数组 采用 long 和回调函数 采用 i
  • typedef 参数的重载[重复]

    这个问题在这里已经有答案了 可能的重复 使用 typedef 别名作为参数重载成员方法 我有以下方法void setField char x 和另一个重载方法void setField int8 t x 这可以在除solaris on so
  • 带有限制关键字的 typedef

    我这样定义对齐浮动 typedef attribute aligned 64 float aligned float 然后我定义对齐的浮动restrict像这样的关键字 typedef aligned float restrict alig
  • typedef 模板声明的替代方案

    我正在努力实现 namespace NTL typedef std valarray vector 通过标准 C 我知道这是不允许的 但我需要一种快速且简单的方法 无需重新实现所有函数 运算符 重载等 来获取模板 typedef 我现在正在
  • 这个 typedef 是什么意思?

    我是 C 新手 这个 typedef 对我来说看起来有点奇怪 有人可以解释它的作用吗 typedef void alpm cb log alpm loglevel t const char va list 它位于头文件中 您可以使用 cde
  • C++:显式调用模板参数的 typedef 的析构函数

    我有以下内容 template
  • `typedef` 和 `struct` 是 C 函数标准中的吗?

    我使用了一些这样的代码 void A typedef struct B B struct B B b typedef and struct函数内部的定义 它是用 Clang 编译的 但我想知道 1 它们是否是标准的一部分 以及关于 2 它们
  • 自引用结构定义?

    我写 C 的时间不长 所以我不确定应该如何做这些递归的事情 我希望每个单元格包含另一个单元格 但我在 字段 child 的类型不完整 行 这是怎么回事 typedef struct Cell int isParent Cell child
  • 在 C++ 中 typedef 数组与使用结构体

    发现了 typedef 的一个有趣的用法 但我确实认为没有必要 typedef int Color 3 那么使用将是 Color pants pants 0 0 etc 通过 ptr 使用 typedef 会创建看起来很奇怪且不清楚的代码
  • C++ Typedef 和运算符重载

    如果你定义一个类似的类型typedef int MY INT 并继续重载 MY INT 的加法运算符 例如 MY INT operator MY INT a MY INT b will MY INT a b a b 不同于 int A B
  • 污染全局命名空间

    我想这里的大多数 C 程序员都会同意污染全局命名空间是一个坏主意 但是有时这条规则可以被忽略吗 例如 我有一个需要在特定应用程序中使用的类型 我应该这样定义它 mytypes h typedef int MY TYPE foo cpp MY
  • 如何使用“typedef NS_ENUM”在一个 .h 文件中定义多个变量类型

    我用过typedef NS ENUM重新组织旧代码中的数据常量 使用方法在这里找到 https stackoverflow com a 42009056 2348597 every typedef被声明在一个单一的 h可以导入到项目中任何类
  • 如果没有“typedef”,如何创建在 C# 泛型中使用的相关类型组?

    作为一名 C 背景的人 我遇到过以下情况 鉴于 c 不支持 typedef 如何以编程方式关联类型 也就是说 在 C 中 我可以将相关类型存储为 typedef 以便在与模板一起使用时进行检索 在 C 中无法以同样的方式完成同样的事情 因为
  • C 结构体中的 Typedef

    首先是令我困惑的代码 typedef struct Object typedef int MyInt void destructor Object void constructor struct Object Object 为什么编译器阻止
  • 是否允许将类模板类型参数键入相同的名称?

    这似乎可以在 MSVC 中按预期编译甚至工作 但它是合法的 C 代码吗 它是否能保证执行此处所期望的操作 即将模板类型导出到结构体的同名用户 template
  • 将 CFIndex 转换为 NSUInteger?

    我如何转换typedef signed long CFIndex to typedef unsigned int NSUInteger 如果我使用一个可以吗 CFIndex作为类型的参数NSUInteger 我还没有铸造它 编译者似乎也不介
  • 为什么要在 C++ 中使用 typedef?

    可以说我有 set
  • 为什么在 C++ 中声明枚举时使用 typedef?

    我已经很多年没有写过任何 C 了 现在我正试图重新开始 然后我遇到了这个并考虑放弃 typedef enum TokenType blah1 0x00000000 blah2 0X01000000 blah3 0X02000000 Toke
  • 使用数组创建单链表时的警告

    include
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo

随机推荐

  • android hmacSha256 加密

    public class HMACSHA256 public static String hmacSha256 String KEY String VALUE return hmacSha KEY VALUE 34 HmacSHA256 3
  • Java生成固定长度的随机字符串(以大小写字母和数字)

    public class RandomStringUtil public static ArrayList lt String gt strList 61 new ArrayList lt String gt public static R
  • Android reckon 控制项目打包版本

    reckon 用法 github地址 xff1a https github com ajoberstar reckon 根项目 gradle配置 buildscript apply from 39 versions gradle 39 re
  • ArrayList源码解析

    构造函数 Constructs an empty list with an initial capacity of ten 使用10个初始容量构造一个空的集合 public ArrayList super 用一个空的数组进行初始化 this
  • 2023年有效的rtsp,rtmp,hls流媒体测试地址整理汇总

    rtsp rtsp wowzaec2demo streamlock net vod mp4 BigBuckBunny 115k mov 已停用 rtsp wowzaec2demo streamlock net vod mp4 BigBuck
  • http请求

    HTTP请求报文 一个HTTP请求报文由请求行 xff08 request line xff09 请求头部 xff08 header xff09 空行和请求数据4个部分组成 1 请求行 请求行分为三个部分 xff1a 请求方法 请求地址和协
  • http响应报文

    HTTP响应报文主要由状态行 响应头部 空行以及响应数据组成 1 状态行 由3部分组成 xff0c 分别为 xff1a 协议版本 xff0c 状态码 xff0c 状态码描述 其中协议版本与请求报文一致 xff0c 状态码描述是对状态码的简单
  • centos7+jdk8+安装Elasticsearch6.0

    一 xff1a 为Elasticsearch准备用户 1 添加用户 Elasticsearch6 0需要使用非root用户启动 root 64 66 adduser ela root 64 66 passwd ela 2 授权用户 查看文件
  • Retrofit2 源码解析

    0 基本使用 1 Retrofit 将我们的 HTTP API 转换成一个 接口形式 所以我们第一步定义一个 interface public interface GitHubService 64 GET 34 user user repo
  • Android Studio插件的源文件位置——mac端

    有些时候安装插件后 xff0c 整个android studio都卡住了 xff0c 无法通过Android Studio gt preferences gt plugins来卸载 xff0c 这时候就需要找到安装位置 xff0c 进行删除
  • H.264编码基础知识详解

    一 编码基础概念 1 为什么要进行视频编码 xff1f 视频是由一帧帧图像组成 xff0c 就如常见的gif图片 xff0c 如果打开一张gif图片 xff0c 可以发现里面是由很多张图片组成 一般视频为了不让观众感觉到卡顿 xff0c 一
  • Android事件分发

    基本知识 什么是触摸事件 触摸事件 xff0c 是Android用来描述你的手对屏幕做的事情的最小单元 关键词有两个 xff1a 手势 xff08 你的手对屏幕做的事情 xff09 最小单元 所谓手势 xff0c 就是比如按下 移动 抬起
  • HashMap这一篇就够了

    介绍下 HashMap 的底层数据结构 现在用的都是 JDK 1 8 xff0c 底层是由 数组 43 链表 43 红黑树 组成 xff0c 如下图 xff0c 而在 JDK 1 8 之前是由 数组 43 链表 组成 为什么要改成 数组 4
  • Activity的结构分析

    1 结构介绍 大伙儿应该都知道 xff0c Activity的结构分为三层 xff0c 分别是 xff1a Activity Window和View xff0c 不同层承担着不同的责任 上面的图简单的描述了Activity整个结构的构建流程
  • LinkedBlockingQueue

    一 类签名 从类名可知 xff0c LinkedBlockingQueue是基于链表实现的阻塞队列 public class LinkedBlockingQueue lt E gt extends AbstractQueue lt E gt
  • UDP Socket

    UDP的Java支持 UDP协议提供的服务不同于TCP协议的端到端服务 xff0c 它是面向非连接的 xff0c 属不可靠协议 xff0c UDP套接字在使用前不需要进行连接 实际上 xff0c UDP协议只实现了两个功能 xff1a 1
  • volatile

    把代码块声明为 synchronized xff0c 有两个重要后果 xff0c 通常是指该代码具有 原子性 xff08 atomicity xff09 和 可见性 xff08 visibility xff09 原子性意味着个时刻 xff0
  • Android 相机预览方向和拍照方向

    我们知道手机 Camera 的图像数据都是来自于摄像头硬件的图像传感器 xff08 Image Sensor xff09 xff0c 这个 Sensor 被固定到手机之后是有一个默认的取景方向的 xff0c 这个方向如下图所示 xff0c
  • Python无参装饰器

    一 什么是装饰器 定义一个函数 xff0c 该函数可为其他函数添加额外的功能 二 何时用装饰器 需要在不修改被装饰对象源代码及其调用方式时 xff0c 为被装饰对象添加额外的功能 三 如何写一个装饰器 现在我们有如下一个函数help xff
  • typedef的用法

    typedef中声明的类型在变量名的位置出现 什么意思呢 xff0c 我们回头来看 我们是怎么声明int类型变量的 xff1f int Typename 像上面这样 xff0c 对不对 xff1f 那么用typedef之后呢 xff1f 把