【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


目录
相关文章
|
9月前
|
C语言
【C语言】break 关键字详解
- `break` 关键字用于提前退出循环体或 `switch` 语句的执行。 - 在 `for`、`while` 和 `do-while` 循环中,`break` 可以帮助程序在满足特定条件时退出循环。 - 在 `switch` 语句中,`break` 用于终止 `case` 代码块的执行,避免代码“穿透”到下一个 `case`。 - 注意 `break` 只会退出最内层的循环或 `switch` 语句,确保在嵌套结构中正确使用 `break` 以避免意外的控制流行为。
789 2
|
9月前
|
存储 编译器 程序员
【C语言】auto 关键字详解
`auto` 关键字用于声明局部变量的自动存储类,其作用主要体现在变量的生命周期上。尽管现代C语言中 `auto` 的使用较少,理解其历史背景和作用对于掌握C语言的存储类及变量管理仍然很重要。局部变量默认即为 `auto` 类型,因此在实际编程中,通常不需要显式声明 `auto`。了解 `auto` 关键字有助于更好地理解C语言的存储类及其在不同场景中的应用。
446 1
|
7月前
|
存储 人工智能 程序员
一文彻底搞清楚C语言的数据类型和变量
本文介绍了数据类型(基本、构造、指针、空类型)、变量(使用、命名规则、作用域)和常量(字面、符号、枚举、表达式),帮助初学者理解编程基础概念。坚持学习,定能创造奇迹!
672 1
一文彻底搞清楚C语言的数据类型和变量
|
8月前
|
C语言
【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】
这份文档详细介绍了编程任务的多个关卡,涵盖C语言的基础知识和应用。主要内容包括: 1. **目录**:列出所有关卡,如`print函数操作`、`转义字符使用`、`数的向上取整`等。 2. **各关卡的任务描述**:明确每关的具体编程任务,例如使用`printf`函数输出特定字符串、实现向上取整功能等。 3. **相关知识**:提供完成任务所需的背景知识,如格式化输出、算术运算符、关系运算符等。 4. **编程要求**:给出具体的代码编写提示。 5. **测试说明**:包含预期输入输出,帮助验证程序正确性。 6. 文档通过逐步引导学习者掌握C语言的基本语法和常用函数,适合初学者练习编程技能。
216 1
|
9月前
|
C语言
【C语言】continue 关键字详解
`continue` 关键字在 C 语言中用于跳过当前循环中的剩余代码,并立即开始下一次迭代。它主要用于控制循环中的流程,使程序在满足特定条件时跳过某些代码。
805 1
【C语言】continue 关键字详解
|
9月前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
357 8
|
9月前
|
C语言
【C语言】return 关键字详解 -《回家的诱惑 ! 》
`return` 关键字在 C 语言中用于终止函数的执行,并将控制权返回给调用者。根据函数的类型,`return` 还可以返回一个值。它是函数控制流中的重要组成部分。
577 2
|
9月前
|
存储 人工智能 程序员
【C语言】一篇通关所有 “关键字”,值得收藏篇!
关键字是编程语言预定义的保留词,代表特定的操作或结构。C语言中的关键字用于定义变量类型、控制语句、存储类、数据类型等。使用这些关键字可以创建函数、控制程序的流程、声明变量和常量等。
1573 0
|
C语言 C++
C语言 typedef的用法示例讲解
typedef是在C和C++编程语言中的一个关键字,作用是为现有的数据类型(int、float、char……)创建一个新的名字,目的是为了使代码方便阅读和理解。
272 1
|
C语言
【C语言】typedef的用法简析
【C语言】typedef的用法简析
206 0