C语言自定义类型 | AI工程化部署

简介: C语言自定义类型:结构体和枚举

C语言自定义类型

1. 结构体

C语言中的结构体是一种用户自定义的数据类型,允许将不同类型的数据组合在一起。它由多个成员变量组成,每个成员变量可以是不同的数据类型,包括基本数据类型、数组、指针等。

结构体的作用是可以用来组织和管理相关的数据,并且可以进行整体操作。它可以用于表示复杂的数据结构,如学生信息、员工信息等。

在使用结构体时,需要注意以下几点:

  1. 定义结构体:使用关键字struct定义结构体,指定成员变量的类型和名称。
  2. 访问结构体成员:通过成员运算符.来访问结构体的成员变量。
  3. 结构体作为参数:可以将结构体作为函数参数传递,并在函数内部对其进行操作。
  4. 结构体指针:可以使用指针来引用和操作结构体,通过指针访问结构体的成员变量。

在使用结构体时,需要注意成员变量的访问权限和数据的有效性,避免出现内存访问错误和数据损坏。同时,要注意结构体的内存对齐和填充,以免造成内存浪费和性能损失。

以下是一个简单的例子:

#include <stdio.h>
#include <stdlib.h>

// 定义一个结构体
struct Student {
   
    char name[20];
    int age;
    float score;
};

int main() {
   
    // 用指针指向结构体,并分配内存
    struct Student *studentPtr = (struct Student*)malloc(sizeof(struct Student));

    // 使用指针访问结构体成员
    strcpy(studentPtr->name, "John");
    studentPtr->age = 20;
    studentPtr->score = 85.5;

    // 打印结构体成员
    printf("Name: %s\n", studentPtr->name);
    printf("Age: %d\n", studentPtr->age);
    printf("Score: %.2f\n", studentPtr->score);

    // 释放内存
    free(studentPtr);

    return 0;
}

还可以使用typedef关键字来定义结构体的别名,使代码更加简洁易读,声明结构体变量时不需要加struct:

#include <stdio.h>

// 声明结构体并定义别名
typedef struct {
   
    char name[20];
    int age;
} Person;

int main() {
   
    // 定义结构体变量
    Person person1;

    // 使用结构体变量...
}

使用typedef关键字,我们可以直接使用Person来定义结构体变量,而不需要再写struct关键字。

2. 枚举类型

枚举(enum)是一种数据类型,用于定义一组命名的常量。它可以增强代码的可读性和可维护性,避免使用魔术数字,并提供了一种更具表达力的方式来表示一组相关的常量。

枚举的应用场景包括定义状态、选项、标志等。例如,可以使用枚举来定义一组方向(上、下、左、右)、一组颜色(红、绿、蓝)、一组状态(开、关、暂停)等。

以下是一个枚举的简单例子:

#include <stdio.h>

// 定义一个枚举类型
enum Color {
   
    RED,
    GREEN,
    BLUE
};

int main() {
   
    // 声明一个枚举变量
    enum Color selectedColor;

    // 使用枚举变量
    selectedColor = GREEN;

    // 打印枚举值
    if (selectedColor == RED) {
   
        printf("The selected color is RED\n");
    } else if (selectedColor == GREEN) {
   
        printf("The selected color is GREEN\n");
    } else if (selectedColor == BLUE) {
   
        printf("The selected color is BLUE\n");
    }

    return 0;
}

在这个例子中,枚举类型Color定义了三种颜色(RED、GREEN、BLUE),然后在main函数中声明了一个Color类型的枚举变量selectedColor,并将其赋值为GREEN。最后根据selectedColor的值打印相应的颜色。

目录
相关文章
|
2月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
1月前
|
人工智能 缓存 JavaScript
Function AI 助力用户自主开发 MCP 服务,一键上云高效部署
在 AI 与云原生融合趋势下,MCP(模型上下文协议)助力开发者高效构建多模型智能应用。Function AI 提供 MCP 服务的一键上云能力,支持代码仓库绑定、OSS 上传、本地交付物及镜像部署等多种方式,实现模型服务快速集成与发布,提升开发效率与云端协同能力。
Function AI 助力用户自主开发 MCP 服务,一键上云高效部署
|
2月前
|
人工智能 自然语言处理 API
AI-Compass LLM推理框架+部署生态:整合vLLM、SGLang、LMDeploy等顶级加速框架,涵盖本地到云端全场景部署
AI-Compass LLM推理框架+部署生态:整合vLLM、SGLang、LMDeploy等顶级加速框架,涵盖本地到云端全场景部署
AI-Compass LLM推理框架+部署生态:整合vLLM、SGLang、LMDeploy等顶级加速框架,涵盖本地到云端全场景部署
|
2月前
|
人工智能 运维 监控
基于MCP的一体化AI管线:从模型训练到部署监控的全链路解析
本文介绍基于MCP(模型控制流水线)的一体化AI部署架构,涵盖从模型训练、自动部署、实时推理到性能监控的完整闭环系统设计,并结合工业制造、能源、IoT等场景,提供代码实现与落地案例,助力企业实现AI自动化运维与智能化升级。
基于MCP的一体化AI管线:从模型训练到部署监控的全链路解析
|
2月前
|
安全 C语言
C语言中的字符、字符串及内存操作函数详细讲解
通过这些函数的正确使用,可以有效管理字符串和内存操作,它们是C语言编程中不可或缺的工具。
231 15
|
8月前
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
365 23
|
7月前
|
人工智能 Java 程序员
一文彻底搞清楚C语言的函数
本文介绍C语言函数:函数是程序模块化的工具,由函数头和函数体组成,涵盖定义、调用、参数传递及声明等内容。值传递确保实参不受影响,函数声明增强代码可读性。君志所向,一往无前!
169 1
一文彻底搞清楚C语言的函数

热门文章

最新文章