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

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

文章目录

一、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

image.png


目录
相关文章
|
18天前
|
C语言
【C语言】break 关键字详解
- `break` 关键字用于提前退出循环体或 `switch` 语句的执行。 - 在 `for`、`while` 和 `do-while` 循环中,`break` 可以帮助程序在满足特定条件时退出循环。 - 在 `switch` 语句中,`break` 用于终止 `case` 代码块的执行,避免代码“穿透”到下一个 `case`。 - 注意 `break` 只会退出最内层的循环或 `switch` 语句,确保在嵌套结构中正确使用 `break` 以避免意外的控制流行为。
64 2
|
18天前
|
传感器 安全 编译器
【C语言】enum 关键字详解
`enum`关键字在C语言中提供了一种简洁而高效的方法来定义一组相关的常量。通过使用枚举,可以提高代码的可读性、可维护性,并减少错误的发生。在实际应用中,枚举广泛用于表示状态、命令、错误码等,为开发者提供了更清晰的代码结构和更方便的调试手段。通过合理使用枚举,可以编写出更高质量、更易维护的C语言程序。
80 2
|
18天前
|
存储 编译器 程序员
【C语言】auto 关键字详解
`auto` 关键字用于声明局部变量的自动存储类,其作用主要体现在变量的生命周期上。尽管现代C语言中 `auto` 的使用较少,理解其历史背景和作用对于掌握C语言的存储类及变量管理仍然很重要。局部变量默认即为 `auto` 类型,因此在实际编程中,通常不需要显式声明 `auto`。了解 `auto` 关键字有助于更好地理解C语言的存储类及其在不同场景中的应用。
38 1
|
18天前
|
C语言
【C语言】continue 关键字详解
`continue` 关键字在 C 语言中用于跳过当前循环中的剩余代码,并立即开始下一次迭代。它主要用于控制循环中的流程,使程序在满足特定条件时跳过某些代码。
51 1
【C语言】continue 关键字详解
|
18天前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
40 8
|
18天前
|
C语言
【C语言】return 关键字详解 -《回家的诱惑 ! 》
`return` 关键字在 C 语言中用于终止函数的执行,并将控制权返回给调用者。根据函数的类型,`return` 还可以返回一个值。它是函数控制流中的重要组成部分。
48 2
|
18天前
|
存储 人工智能 程序员
【C语言】一篇通关所有 “关键字”,值得收藏篇!
关键字是编程语言预定义的保留词,代表特定的操作或结构。C语言中的关键字用于定义变量类型、控制语句、存储类、数据类型等。使用这些关键字可以创建函数、控制程序的流程、声明变量和常量等。
51 0
|
18天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
39 10
下一篇
DataWorks