- #include <stdio.h>#include <string.h>int main(){ char str[] = "http://c.biancheng.net"; int len = strlen(str), i; //直接输出字符串 printf("%s\n", str); ... #include <stdio.h>#include <string.h>int main(){ char str[] = "http://c.biancheng.net"; int len = strlen(str), i; //直接输出字符串 printf("%s\n", str); ...
- 1.基础配置 (1)功率:在PCONP寄存器中置位PCSSP0/1; (2)时钟:在PCLK_SSP1寄存器中选择PLCK_SEL0;在PCLK_SSP0寄存器中选择PCLK_SEL1.主机模式下必须对时钟进行分频。 (3)管脚:通过PINSEL寄存器选择SSP管脚,并通过PINMODE寄存器选择管脚模式 (4)中断:中断是通过SnSP... 1.基础配置 (1)功率:在PCONP寄存器中置位PCSSP0/1; (2)时钟:在PCLK_SSP1寄存器中选择PLCK_SEL0;在PCLK_SSP0寄存器中选择PCLK_SEL1.主机模式下必须对时钟进行分频。 (3)管脚:通过PINSEL寄存器选择SSP管脚,并通过PINMODE寄存器选择管脚模式 (4)中断:中断是通过SnSP...
- 静态链接 1.建立静态链接库 File→New→Project→Static library 示例: 建立静态链接库工程:StaticLibrary, static.h #ifndef STATIC_H_INCLUDED #define STATIC_H_INCLUDED #ifdef __cplusplus extern "C... 静态链接 1.建立静态链接库 File→New→Project→Static library 示例: 建立静态链接库工程:StaticLibrary, static.h #ifndef STATIC_H_INCLUDED #define STATIC_H_INCLUDED #ifdef __cplusplus extern "C...
- 1. crc8校验接口 static uint8_t crc8( uint8_t * p_buffer, uint16_t buf_size ){ uint8_t crc = 0; uint8_t i=0; if(buf_size <= 0) { return crc; } ... 1. crc8校验接口 static uint8_t crc8( uint8_t * p_buffer, uint16_t buf_size ){ uint8_t crc = 0; uint8_t i=0; if(buf_size <= 0) { return crc; } ...
- 可重入函数和不可重入函数的概念 在函数中如果我们使用静态变量了,导致产生中断调用别的函数的 过程中可能还会调用这个函数,于是原来的 静态变量被在这里改变了,然后返回主体函数,用着的那个静态变量就被改变了,导致错误。这类函数我们称为不可重入函数。 如果是在函数体内 动态申请内存的话,即便 新的线程调用这个函数也没事,因为新的线... 可重入函数和不可重入函数的概念 在函数中如果我们使用静态变量了,导致产生中断调用别的函数的 过程中可能还会调用这个函数,于是原来的 静态变量被在这里改变了,然后返回主体函数,用着的那个静态变量就被改变了,导致错误。这类函数我们称为不可重入函数。 如果是在函数体内 动态申请内存的话,即便 新的线程调用这个函数也没事,因为新的线...
- typedef void (*T) (void * );定义了一个指向函数的指针T, 其 返回值 void 类型,参数也是后面的(void *) 接下来我们就可以直接使用 T 来定义这种 指针变量 ,比如:T fn1; //等价于void fn1 (void *); 使用:void func(void *);... typedef void (*T) (void * );定义了一个指向函数的指针T, 其 返回值 void 类型,参数也是后面的(void *) 接下来我们就可以直接使用 T 来定义这种 指针变量 ,比如:T fn1; //等价于void fn1 (void *); 使用:void func(void *);...
- 根据之前的顺序栈类比,栈只是栈顶来做插入和删除操作,栈顶放在链表的头部还是尾部呢? 类比单链表的头指针和栈顶指针,为什么不合二为一呢? 所以想出了把栈顶放在单链表的头部 对于链栈来说,基本不存在栈... 根据之前的顺序栈类比,栈只是栈顶来做插入和删除操作,栈顶放在链表的头部还是尾部呢? 类比单链表的头指针和栈顶指针,为什么不合二为一呢? 所以想出了把栈顶放在单链表的头部 对于链栈来说,基本不存在栈...
- 知识来源主要是陈正冲老师的《C语言深度解剖》及Delphi Tang老师的《C语言剖析》,有兴趣的朋友可以看我置顶文章获取 很多新手都对位运算符理解的都不是很深刻,但是位运算在实际编程中使用的却很普遍,因为位运算是直接对bit的操作,效率最高。 与 & 计算取特定位 或 | ... 知识来源主要是陈正冲老师的《C语言深度解剖》及Delphi Tang老师的《C语言剖析》,有兴趣的朋友可以看我置顶文章获取 很多新手都对位运算符理解的都不是很深刻,但是位运算在实际编程中使用的却很普遍,因为位运算是直接对bit的操作,效率最高。 与 & 计算取特定位 或 | ...
- 编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就是针对编程工作中的一些体会和经验做相关的阐述。 第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值: 方法A:通常的办法... 编写高效简洁的C语言代码,是许多软件工程师追求的目标。本文就是针对编程工作中的一些体会和经验做相关的阐述。 第一招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招--以空间换时间。比如说字符串的赋值: 方法A:通常的办法...
- 知识来源主要是《C语言精彩编程百例》及源码,有兴趣的朋友可以看我置顶文章获取 C语言精彩编程百例PDF及源码资料 知识来源主要是《C语言精彩编程百例》及源码,有兴趣的朋友可以看我置顶文章获取 C语言精彩编程百例PDF及源码资料
- 都是从项目经验中提炼出的问题 但凡程序出现了一些问题,多半和内存有关!!!所有资料电子版可以通过置顶文章获取 内存操作经典问题实例分析一 野指针 1.指针变量中的值是非法的内存地址,进而形成野指针 2.野指针不是NULL指针,是指向不可用内存地址的指针 3.NULL指针并无危害,很好判断,也很... 都是从项目经验中提炼出的问题 但凡程序出现了一些问题,多半和内存有关!!!所有资料电子版可以通过置顶文章获取 内存操作经典问题实例分析一 野指针 1.指针变量中的值是非法的内存地址,进而形成野指针 2.野指针不是NULL指针,是指向不可用内存地址的指针 3.NULL指针并无危害,很好判断,也很...
- 作为一个开发人员,在看别人项目或者看第三方库的源代码时,可能经常会看到譬如a>>4&0x0f这样的写法,对于一些初入行的童鞋来说可能就不是太明白这是什么意思。下面我们就来讲解这几个运算符的实际用途。 一、运算符的含义 运算符含义描述<<左移用来将一个数的各二进制位全部左移N位,高位舍弃... 作为一个开发人员,在看别人项目或者看第三方库的源代码时,可能经常会看到譬如a>>4&0x0f这样的写法,对于一些初入行的童鞋来说可能就不是太明白这是什么意思。下面我们就来讲解这几个运算符的实际用途。 一、运算符的含义 运算符含义描述<<左移用来将一个数的各二进制位全部左移N位,高位舍弃...
- 我的公众号是【CodeAllen】,程序员技术交流①群:736386324,转载请注明出处 临接表虽然很优秀,但是也有一些缺点 1.比如对有向图,有时候需要再建立一个逆临接表 所以思考一个问题: 有没有可能把邻接表和逆邻接表结合起来呢? 是可以的,方法... 我的公众号是【CodeAllen】,程序员技术交流①群:736386324,转载请注明出处 临接表虽然很优秀,但是也有一些缺点 1.比如对有向图,有时候需要再建立一个逆临接表 所以思考一个问题: 有没有可能把邻接表和逆邻接表结合起来呢? 是可以的,方法...
- 知识来源主要是陈正冲老师的《C语言深度解剖》及Delphi Tang老师的《C语言剖析》和《征服C指针》,《C和指针》,有兴趣的朋友可以看我置顶文章获取 数组的本质: 数组是一段连续的内存空间数组的空间大小为sizeof(array_type)*array_size数组名可以看做指向数组的第一个元素的常量指针(只是理... 知识来源主要是陈正冲老师的《C语言深度解剖》及Delphi Tang老师的《C语言剖析》和《征服C指针》,《C和指针》,有兴趣的朋友可以看我置顶文章获取 数组的本质: 数组是一段连续的内存空间数组的空间大小为sizeof(array_type)*array_size数组名可以看做指向数组的第一个元素的常量指针(只是理...
- 欢迎关注我的公众号是【CodeAllen】,关注回复【1024】获取资源 程序员技术交流①群:736386324 ,程序员技术交流②群:371394777 在网图和非网图中,最短路径的含义是不同的。 网图是两顶点经过的边上 权值之和最少的路径。 非网图是两顶点之间经... 欢迎关注我的公众号是【CodeAllen】,关注回复【1024】获取资源 程序员技术交流①群:736386324 ,程序员技术交流②群:371394777 在网图和非网图中,最短路径的含义是不同的。 网图是两顶点经过的边上 权值之和最少的路径。 非网图是两顶点之间经...
上滑加载中
推荐直播
-
华为云IoT开源专家实践分享:开源让物联网平台更开放、易用
2024/05/14 周二 16:30-18:00
张俭 华为云IoT DTSE技术布道师
作为开发者的你是否也想加入开源社区?本期物联网平台资深“程序猿”,开源专家张俭,为你揭秘华为云IoT如何借助开源构建可靠、开放、易用的物联网平台,并手把手教你玩转开源社区!
去报名
热门标签