C 进阶
文章平均质量分 75
C 进阶
deepwater_zone
嵌入式开发、学习交流
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C 编程规范(变量,结构体,typedef,函数,枚举,宏的命名)
编程中的命名规范与代码质量要求,主要包括: 命名约定 采用4种命名风格:驼峰式、帕斯卡式、下划线式和匈牙利式 文件名全小写,变量名小写下划线连接 类型名用帕斯卡命名法,函数名首字母大写 宏命名全大写,枚举名与常量一致 函数规范 单一职责原则 避免深度嵌套 全面处理错误返回码 质量保证 7大原则:正确性、简洁性、可靠性、可维护性等 在保证质量前提下提高效率 注释原则 优秀代码应自解释 过多注释可能意味着代码需要重构 常用缩写 列举了变量和函数名的常见缩写形式 全文强调通过规范命名和结构化编程来提高代原创 2019-07-21 18:27:22 · 16684 阅读 · 0 评论
-
C核心高级技术
C语言的高级应用领域和核心技术:C语言广泛应用于系统编程、嵌入式系统、高性能计算、网络编程和数据库系统等需要精确控制硬件和高性能的场景。 文章重点讲解了三个核心技术: 指针高级应用:包括多级指针实现动态多维数组,以及函数指针实现回调机制; 内存管理高级技术:通过自定义内存分配器提高性能,示例展示了简单内存池的实现; 多线程与并发编程:介绍了使用POSIX线程库处理线程同步的关键技术。 每个技术点都配有详细的C代码示例和Mermaid图示,清晰展示了内存布局和程序结构。这些高级技术是提升C语言编程能原创 2025-09-13 12:23:14 · 832 阅读 · 0 评论 -
变量的内存分配情况(global,local,static)
C语言有全局变量(Global)、本地变量(Local)、静态变量(Static)和寄存器变量(Register)。每种变量都有不同的分配方式。#include<stdio.h>int g1 = 0, g2 = 0, g3 = 0;int main(){ static int s1 = 0, s2 = 0, s3 = 0; int v1 = 0, v2 = 0, v3 = 0; printf("&g1 = 0x08%X \n", &g1); printf("&a原创 2020-05-29 23:55:21 · 1490 阅读 · 0 评论 -
内存四区(栈区.stack,堆区.heap,读写数据区.data .bss、代码区.text .rodata)
1、划分内存四区的意义:C语言程序中,根据是局部变量,全局变量,常量还是通过malloc等类似的函数分配内存空间,把他们放到对应的内存区中。这样就赋予了这些变量或常量不同的生命周期,不同的释放方式。根据我们程序的需要,我们在编码过程中,声明不同的变量类型,使他们有不同的声明长度,不同的释放方式,给我们更大的灵活编程。2、内存四区分类:序号区域描述1栈区(stack)...原创 2019-08-03 17:38:12 · 1994 阅读 · 0 评论 -
C运行速度优化方法
文章目录1、选择合适的算法和数据结构2、使用尽量小的数据类型3、减少运算的强度3.1 查表4、循环优化5、提高CPU的并行性6、变量7、使用嵌套的if结构转载 2021-10-19 21:45:25 · 3406 阅读 · 0 评论 -
typedef 常用用法
typedef工具是一个高级数据特性,利用typedef可以为某一类型自定义名称。这方面与#define类似,但是两者有3处不同:(1)与#define不同,typedef创建的符号名只受限于类型,不能用于值;(2)typedef由编译器解释,不是预处理器;(3)在其受限范围内,typedef比#define更灵活。原创 2019-06-27 22:49:57 · 1010 阅读 · 0 评论 -
单链表,双链表
链表的概念:(1)一种动态存储分布的数据结构;(2)若干个同一结构类型的“结点”依次串接而成;(3)单向链表、双向链表。链表与数组的比较:1、数组(1)事先定义固定长度的数组;(2)在数组元素个数不确定时,可能会发生浪费内存空间的情况 。2、链表(1)动态存储分配的数据结构;(2)根据需要动态开辟内存空间,比较方便地插入新元素(结点);(3)使用链表可以节省内存,提高操作效率...原创 2019-06-20 23:41:01 · 426 阅读 · 0 评论 -
指针函数 vs 函数指针(...)
1、指针函数:指针作为函数的返回值应用实例1:解密藏头诗:#include <stdio.h>char *change(char s[][20], char t[]);void main(void){ int i; char s[4][20] , t[10], *p; printf(“请输入藏头诗:\n”); for(i = 0; i <...原创 2019-06-20 23:30:45 · 599 阅读 · 0 评论 -
C 指针进阶(指针数组 vs 数组指针,指向指针的指针)
1、指针数组 vs 数组指针(1)指针数组:元素是指针的数组,用于存放内存地址:char * color[] = {"red", "blue", "yellow", "green", "purple"};color 是一个数组,它有5个元素,元素的类型都是字符指针。对数组元素的操作相当于对同类型指针变量的操作:printf("%10s, %10s\n", color[0], color...原创 2019-06-20 23:24:32 · 350 阅读 · 0 评论
分享