
C语言
恩基尼尔
这个作者很懒,什么都没留下…
展开
-
各种排序算法的实现与比较
排序算法简介1. 冒泡排序2. 选择排序3. 插入排序4. 归并排序5. 堆排序6. 快速排序7. 计数排序试验介绍源码分享/* * @Author: your name * @Date: 2020-12-15 21:15:54 * @LastEditTime: 2020-12-17 23:44:36 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath原创 2020-12-17 23:51:55 · 584 阅读 · 0 评论 -
STM32F1系列单片机的flash模拟EEPROM方案(简单易用)
前言方案说明设计思路使用方法源码分享文件:main.c#include "delay.h"#include "sys.h"#include "usart.h"#include "stm32f1_flash.h"int32_t var_a = 0;int main(){ int i = 0; delay_init();//初始化延时函数 uart_init(19200);//初始化串口 printf("test start !\r\n"); register_data(&a原创 2020-11-17 00:33:29 · 3500 阅读 · 3 评论 -
从C语言过渡到C++
头文件与命名空间输入输出bool 类型string 类型const constexpr变量定义位置动态内存管理类型转换默认参数与函数重载带参宏 内联函数指针与引用空指针智能指针原创 2020-11-05 12:57:22 · 1490 阅读 · 0 评论 -
C语言变参函数的原理与应用
变参函数变参函数其实并不罕见,在初学者的的 helloworld 程序中就用到了变参函数 printf() ,在之后的学习当中,scanf() 又是另一个常见的变参函数。这些函数有以下共同特点:可以输入一个到任意多个参数从第二个参数开始,参数的类型不固定可以从第一个参数推测应该输入的参数类型及个数实现原理在函数调用过程中,相应内存的栈空间会增长,这时函数参数会被压到栈中。在普通函数执行时,函数根据参数列表得知栈内的参数类型以及个数,计算出相应参数的地址 和 占用空间大小,从而从栈中获取各个原创 2020-10-28 11:22:48 · 470 阅读 · 0 评论 -
C语言编程易错点总结
前言C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。它是目前最著名,最流行的语言,效率高、功能强、用法灵活。在学习编程语言的过程中,最怕最难的就是找BUG,而找BUG又是必不可少的能力,甚至可能是编程中必经的一个环节。有时候找BUG的时间甚至可能比写代码的时间还要长。语法上的错误可以在编译器的帮助下较轻松的解决,但是一些逻辑上的错误不仅仅难以修正,还可能难以察觉,它可能突然出现,又神秘消失。为了防止重复犯同样的错误,也为了...原创 2020-10-17 11:29:38 · 4339 阅读 · 0 评论 -
一种可自动实现增量编译的Makefile模板
Makefile介绍程序的生成可分为预处理 编译 汇编 链接这几个阶段,各个阶段的功能不再赘述。对于平时写的各种小程序,并不需要很精细的管理。如果某一处发生了改动,直接把所有文件把的所有阶段全都执行一遍。当工程比较小的时候怎么做没有问题,但一旦工程比较大,就需要选择性的进行编译、链接等操作,否则会消耗很多时间。当源码有改动时,只对改动所能影响到的文件进行重构,这就是增量编译的概念。Makefile 可以简单的认为是一个工程文件的编译规则,描述了整个工程的编译和链接等规则。其中包含了那些文件需要编译,那些原创 2020-10-04 22:52:54 · 948 阅读 · 0 评论 -
一种获取所有排列状态的非递归算法
什么是排列应用场景算法思路源码分享#include <stdio.h>#include <stdlib.h>#include <string.h>int numArray[] = {5, 9, 7, 4, 6, 9, 1};int test(int *p, int num);int *sequenceAndTest(int length, int num, int (*testFunc)(int *, int));int main(int arg原创 2020-09-24 23:48:47 · 201 阅读 · 0 评论 -
一种获取所有组合状态的非递归算法
组合定义组合的定义:从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号 C(n,m) 表示。应用场景在解决各种算法的问题时,有一种比较偷懒的方式,那就是把所有可能性都试一遍。而排列组合是比较常用的方式,可以通过某种编码方式,让一组排列组合结果来代表某个解,测试所有排列组合,便测试了所有解。源码分享#include <stdio.h>#in原创 2020-09-19 10:28:50 · 432 阅读 · 1 评论 -
一种Windows/Linux系统下的非阻塞输入方案
目录什么是非阻塞输入应用场景实现原理源码分享什么是非阻塞输入程序获取输入的方式有很多,如 scanf()、getchar()、getche()、getch() 等函数,这些函数在执行的时候,会等待用户进行输入,直到获取输入完毕才会执行后面的代码。如果用户一直不输入,那么程序就一直等待,函数后面的代码得不到执行,这就是阻塞输入。非阻塞输入是指:用户输入数据后程序可以捕获,用户不输入数据程序也可以继续执行。应用场景初学者使用的一般是阻塞式输入,这种方式一般没有任何问题,用户输入完数据再执行后面的代码往原创 2020-09-15 00:35:48 · 1654 阅读 · 0 评论 -
简单易懂的 C语言指针
C语言指针什么是指针指针定义指针赋值指针使用指针运算如何看懂复杂指针符号优先级分析方法指针使用注意事项指针与数组指针与const什么是指针在运行的程序中, 所有的数据都是存放在内存中的,不同的数据类型占有的内存空间的大小各不相同。内存是以字节为单位的连续编址空间, 每一个字节单元对应着一个唯一的编号。这个编号被称为内存单元的地址,其中存储的数据的首地址用于标识该数据,称为变量地址,方便用户对数据进行正确的访问。指针也就是内存地址,指针变量是用来存放内存地址的变量, 它与一般的变量不同的是,一般变量存放原创 2020-09-06 18:07:22 · 488 阅读 · 0 评论