news 2026/5/1 9:52:30

c语言模板

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
c语言模板
// https://blog.csdn.net/lianghudream/article/details/149105035 // // gcc 1.c &&./a.out #include <stdio.h> typedef enum { Idle, Running, Error } State; typedef enum { Start, Stop, Reset } Event; // 状态处理函数 State handleStart() { return Running; } State handleStop() { return Idle; } // 跳转表:StateMachine[当前状态][事件] = 处理函数. 每一个状态,和一个事件发生时候对应的处理函数. // StateMachine[3][3]:这是一个 3×3 的数组。 记住[] 的优先级比* 高. // (*StateMachine[3][3]):数组的每个元素是一个 指针。 stateMachine是一个指针组成的数组. // State (*)(void):这个指针指向一个 没有参数、返回 State 类型的函数。 State (*StateMachine[3][3])() = { [Idle] = { [Start] = handleStart }, [Running] = { [Stop] = handleStop } }; int test(){//这样可以不在main里面互相污染变量名空间. printf("数组指针\n"); int arr[2][3] = { {1, 2, 3}, {4, 5, 6} }; // 声明一个包含2行3列的二维数组 int(*ptr)[3]; // 声明一个指向包含3个整数的数组的指针 ptr = arr; for (int i = 0; i < 2; i++) { for (int j = 0; j < 3; j++) { printf("%d ", *(*(ptr + i) + j)); } printf("\n"); } } int test3(){ int a=3; int* pa=&a; // printf("%d\n",***pa); //对于非函数,一直进入就不行. // printf("%d\n",**pa); printf("%d\n",*pa); printf("%d\n",*pa); printf("%d\n",*pa); } int main(void) { printf("指针数组\n"); int* ptrArray[5]; // 声明一个包含5个指向整数的指针的数组 int a = 1, b = 2, c = 3, d = 4, e = 5; ptrArray[0] = &a; ptrArray[1] = &b; ptrArray[2] = &c; ptrArray[3] = &d; ptrArray[4] = &e; for (int i = 0; i < 5; i++) { printf("%d ", *ptrArray[i]); } printf("=========================\n"); test(); //枚举类型: typedef enum { MON, TUE, WED } Weekday; for (Weekday day = MON; day <= WED; day++) { printf("%d\n", day); // 输出0, 1, 2 } printf("测试test3\n"); test3(); printf("加几个星都表示这个指针所指向的函数,不会一直进入内容");//多取几次星也都对. printf("StateMachine[Idle][Start]() = %d\n", (***StateMachine[Idle][Start])()); //函数指针表示一个指针他指向的是一个函数. 函数的指针, 主语是指针. printf("StateMachine[Idle][Start]() = %d\n", (**StateMachine[Idle][Start])()); //函数指针表示一个指针他指向的是一个函数. 函数的指针, 主语是指针. printf("StateMachine[Idle][Start]() = %d\n", (*StateMachine[Idle][Start])()); //函数指针表示一个指针他指向的是一个函数. 函数的指针, 主语是指针. printf("StateMachine[Idle][Start]() = %d\n", (StateMachine[Idle][Start])()); // 看出来函数指针加不加*都表示这个函数. struct Point { int x, y; }; struct Point p = { .y = 2, .x = 3 }; // 等价于 {3, 2} // 指定初始化器(Designated Initializer)是C99标准引入的重要特性 这种显示初始化的方式可以使代码更加清晰易读 printf("p.x = %d, p.y = %d\n", p.x, p.y); union Data { int i; float f; }; union Data d1 = { .f = 3.14 }; // 仅初始化f成员。 printf("d.i = %d, d.f = %f\n", d1.i, d1.f); printf("Hello, World!\n"); int arr[6] = {[5] = 212}; // C99 指定初始化器 for (int i = 0; i < 6; i++) { printf("%d ", arr[i]); } printf("\n"); return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 4:47:14

Flutter与OpenHarmony热门标签组件开发

前言 热门标签是内容平台中引导用户发现热点内容的重要组件。它以标签云或列表形式展示当前热门的话题、关键词或分类&#xff0c;帮助用户快速找到感兴趣的内容。本文将详细介绍如何在Flutter和OpenHarmony平台上实现一个视觉吸引、交互流畅的热门标签组件。 热门标签的设计…

作者头像 李华
网站建设 2026/5/1 6:54:54

3分钟掌握B站视频下载:解锁4K高清的终极指南

3分钟掌握B站视频下载&#xff1a;解锁4K高清的终极指南 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 还在为无法保存B站精彩内容而…

作者头像 李华
网站建设 2026/5/1 8:02:12

LangFlow内存泄漏检测方法

LangFlow内存泄漏检测方法 在AI应用快速迭代的今天&#xff0c;低代码平台正成为连接开发者与大型语言模型&#xff08;LLM&#xff09;的关键桥梁。LangFlow作为其中的代表性工具&#xff0c;通过可视化拖拽方式让构建复杂AI工作流变得轻而易举。然而&#xff0c;当我们在画布…

作者头像 李华
网站建设 2026/5/1 5:45:53

LangFlow首屏加载时间缩短至1.2秒

LangFlow首屏加载时间缩短至1.2秒 在AI应用开发日益普及的今天&#xff0c;一个看似微小的性能指标——首屏加载时间&#xff0c;正悄然决定着开发者是否愿意长期使用一款工具。当LangFlow将这一数值压缩到1.2秒以内时&#xff0c;它不仅刷新了同类产品的体验上限&#xff0c;也…

作者头像 李华
网站建设 2026/4/29 13:44:39

如何3天掌握ThuThesis:清华论文LaTeX排版终极指南

如何3天掌握ThuThesis&#xff1a;清华论文LaTeX排版终极指南 【免费下载链接】thuthesis LaTeX Thesis Template for Tsinghua University 项目地址: https://gitcode.com/gh_mirrors/th/thuthesis 还在为论文格式问题烦恼吗&#xff1f;ThuThesis作为清华大学官方LaTe…

作者头像 李华
网站建设 2026/4/27 17:52:06

告别网络资源下载困境:res-downloader智能下载器全面解析

告别网络资源下载困境&#xff1a;res-downloader智能下载器全面解析 【免费下载链接】res-downloader 资源下载器、网络资源嗅探&#xff0c;支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gitcode.…

作者头像 李华