首页 > 其他分享 >typedef用法

typedef用法

时间:2024-04-20 23:44:05浏览次数:26  
标签:typedef int 创建 float 别名 用法 类型

在C语言中,typedef 是一个关键字,用于为已有的数据类型创建一个新的名称。它可以简化代码,提高可读性,并使代码更具可维护性。typedef 的用法如下:

1、为基本数据类型创建别名:
typedef 可以为基本数据类型(如 int、float、char 等)创建别名,使其在代码中使用起来更加直观。

typedef int myInt;
typedef float myFloat;
typedef char myChar;

在上述示例中,我们为 int 类型创建了别名 myInt,为 float 类型创建了别名 myFloat,为 char 类型创建了别名 myChar。

2、为结构体创建别名:
typedef 还可以为结构体创建别名,使结构体类型更易于使用。

typedef struct {
    int x;
    int y;
} Point;

在上述示例中,我们为一个匿名的结构体创建了别名 Point,该结构体包含了两个整型成员变量 x 和 y。

3、为指针类型创建别名:
typedef 还可以为指针类型创建别名,使指针类型的声明更加简洁明了。

typedef int* IntPtr;
typedef float* FloatPtr;

在上述示例中,我们为 int* 类型创建了别名 IntPtr,为 float* 类型创建了别名 FloatPtr。

4、为函数指针创建别名:
typedef 还可以为函数指针类型创建别名,使函数指针类型的声明更加简洁明了。

typedef int (*MathFunc)(int, int);

在上述示例中,我们为接受两个 int 类型参数并返回 int 类型结果的函数指针创建了别名 MathFunc。

使用 typedef 创建别名后,我们可以直接使用别名来声明变量,而无需再写出完整的数据类型。 

 

下面是一个完整的示例代码,演示了 typedef 的用法:

#include <stdio.h>
 
// 为基本数据类型创建别名
typedef int myInt;
typedef float myFloat;
typedef char myChar;
 
// 为结构体创建别名
typedef struct {
    int x;
    int y;
} Point;
 
// 为指针类型创建别名
typedef int* IntPtr;
typedef float* FloatPtr;
 
// 为函数指针创建别名
typedef int (*MathFunc)(int, int);
 
// 定义一个函数,接受两个 int 类型参数并返回它们的和
int sum(int a, int b) {
    return a + b;
}
 
int main() {
    // 使用别名声明变量
    myInt num = 10;
    myFloat pi = 3.14;
    myChar letter = 'A';
 
    Point p;
    p.x = 5;
    p.y = 3;
 
    IntPtr pInt;
    FloatPtr pFloat;
 
    MathFunc add = sum;
    int result = add(2, 3);
 
    // 输出变量的值
    printf("num = %d\n", num);
    printf("pi = %.2f\n", pi);
    printf("letter = %c\n", letter);
    printf("p.x = %d, p.y = %d\n", p.x, p.y);
    printf("result = %d\n", result);
 
    return 0;
}

输出结果:

num = 10
pi = 3.14
letter = A
p.x = 5, p.y = 3
result = 5

根据输出结果可知,我们使用 typedef 创建的别名来声明变量,使代码更加简洁易读。https://blog.csdn.net/m0_74293254/article/details/134054841

标签:typedef,int,创建,float,别名,用法,类型
From: https://www.cnblogs.com/icaowu/p/18148428

相关文章

  • mysql视图的基本用法
    MySQL视图(View)是一种虚拟的表,它基于一个或多个实际表的查询结果构建而成。视图可以像表一样被查询,但实际上它并不存储数据,而是根据定义时指定的查询规则动态生成结果。MySQL视图的基本用法包括创建视图、查询视图、更新视图以及删除视图。以下是MySQL视图的基本用法:创建视图(Crea......
  • Qdrant用法;Qdrant在langchain里的用法
    基础用法这里不再赘述了。直接参照官网。想看看一些概率可以参考下面两个网站:1. https://m.elecfans.com/article/2078558.html2. https://blog.csdn.net/cxs812760493/article/details/135346390下面说一些在langchain可能遇到的问题:1.先确定自己 Collections中向量 的......
  • mysql中last_insert_id()用法
    前言在使用MySQL时,若表中含自增字段(auto_increment类型),则向表中insert一条记录后,可以调用last_insert_id()来获得最近insert的那行记录的自增字段值。但事实上,使用last_insert_id()时有很多注意事项,很容易踩到坑。数据准备CREATETABLE`tb_product`(`id`bigin......
  • 200 Smart的一些关于寄存器和地址相关的用法实例
    累加器200smart有AC0AC1AC2AC3四个累加器,不能作为位访问累加器大小均是32位累加器的数值不会自动清零,中断会保持并重新装载累加器(进入中断时先把原来的值保存起来,退出中断程序后恢复原程序)只有AC1/AC2/AC3可以用作指针AC0不用作指针,不用作间接寻址LDSM0.0......
  • npm link 用法
    1、什么时候使用npmlink?npmlink用来在本地项目和本地npm包之间建立连接,可以在本地进行模块测试。npm包在开发和迭代更新时,不适合直接发布到线上或者直接发布测试版本进行调试,会导致过程繁琐且版本号过多。此时我们就可以使用npmlink命令将包放在no......
  • MyBatis: databaseId的用法
    可以通过databaseId来区分执行的SQL是在MySQL上还是在Oracle上。一、在配置文件mybatis-config中配置databaseId:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN""http://......
  • asan/gpreftools内存调试简明用法
     启用高版本gccsource/opt/rh/devtoolset-11/enable libasan编译选项makeEXTRA_CFLAGS="-O0-g-fsanitize=address-fsanitize-recover=address-fno-omit-frame-pointer-static-libasan-DBUILD_DEBUG-UDPDK_MALLOC-DRTE_MALLOC_ASAN" gpreftools编译选项makeE......
  • .net 6 C#中System.IO.Path类的用法
    1.说明/*PerformsoperationsonSystem.Stringinstancesthatcontainfileordirectorypathinformation.Theseoperationsareperformedinacross-platformmanner.对系统执行操作。包含文件或目录的字符串实例路径信息。这些操作是以跨平台的方式执行的。*/......
  • openai包基础用法
    Note包含同步&异步完成&流式闲言少叙,看剑Requirementspipinstallopenai-UCodeimportopenaiimportasynciodefpp(obj:str):print(obj.center(50,"*"))#syncdef_sync():##w/ostreampp("Syncw/ostream")response......
  • mysql中replace into用法
    前言replaceinto跟insertinto功能类似,不同点在于:replaceinto首先尝试插入数据到表中如果发现表中已经有相同的数据(根据主键或者唯一索引判断)则先删除原来的数据,然后插入新的。否则,直接插入新数据。注意:插入数据的表必须有主键或者是唯一索引!否则的话,replaceinto会......