
c
爱吃肉的大高个
执着于单片机应用、电子设计大赛、嵌入式开发的有理想的咸鱼
邮箱 gyyjx123024@gmail.com
展开
-
为什么不能在中断中使用printf--不可重入函数
前言前两天在笔试的时候遇到了关于能否在中断中使用printf的问题,当时有点蒙,笔试结束后查阅了资料,这里进行以下总结可重入函数和不可重入函数printf不能在中断中被调用的原因是它是一个不可重入函数,而在中断中要避免调用不可重入函数,首先我们先说说什么是可重入函数,什么是不可重入函数简单说来,区分一个函数是否可重入就是看这个函数能否在未返回的时候再次被调用。而造成一个函数不可重入的原因往...原创 2019-12-16 20:07:25 · 4671 阅读 · 0 评论 -
C语言中memcpy和memset的使用详解
最近读的代码中时常见到memcpy、memset这俩个函数,所以今天特地将这俩个函数的用法总结一下一、memset1、memset函数声明 memset(void *s,int ch,size_t n); 将s开始的n个字节用ch的ASCII值替代并且返回s;若要清空一个内存区,char a [20]: memset(a,0,20);2、头文件:string.h\memory.h3、注...原创 2018-05-09 18:17:19 · 4037 阅读 · 0 评论 -
如何理解C语言的声明
在K&R中,作者承认“C语言声明的语法有时会带来严重的问题”。C语言声明的语法对于编译器来说并不是什么大不了的事,但对于一般的程序员,它却会成为障碍。在阅读较为复杂的代码时,首先让人感觉难以下手的就是声明了,有时候一大段声明摆在眼前完全不知道该如何读,看完都分不清返回值究竟是什么,通过阅读《C专家编程》的第三章,基本上可以解决以后见到的所有声明,这是我认为在这本书中重要程度排前列的章节,所...原创 2018-05-12 00:29:12 · 7039 阅读 · 0 评论 -
c语言中关于const的使用
const是C语言中一个十分重要的修饰 我总结了它的含义使用以及作用如下1.修饰的数据类型是常类型,常类型的变量或对象的值不能被改变 const int i=10; int a[i];等价于int a[10];2.便于进行类型检查,使编译对处理内容有更多的了解,消除了一些隐患。3.方便的进行参数的调整和修改(类似于宏定义)4.可以保护被修饰的东西,防止被意外修改原创 2017-11-23 18:25:39 · 4250 阅读 · 1 评论 -
《C和指针》学习笔记(一)第一章~第六章
1、把函数的声明放在头文件,需要的时候include头文件,的好处: 声明只需要编写一次,使以后的维护修改更容易,消除了多份拷贝写法不同的情况2、gets读入字符串,可能会超出数组的边界,fgets会把字符串长度作为参数传入3、俩个环境:翻译环境、执行环境4、交叉编译器:类似操作系统 独立环境:不具有操作系统,嵌入式5、代码-》预处理-》解析-》优化-》目标代码-》...原创 2018-09-01 22:25:49 · 1801 阅读 · 0 评论 -
《C和指针》学习笔记(四)第十六章~第十七章
1、div函数用于计算商和余数,结果返回到一个div_t的结构体中2、以时间作为随机数种子:srand((unsigned int)time(NULL));3、字符串转换:atoi、atol把字符转换为整数和长整型,strtol、strtoul可以在函数中设置基数4、如果一个函数的参数不在该函数的定义域之内,称为定义域错误,值过大过小叫范围错误5、modf函数把一个浮点值分成整数和小数部分...原创 2018-09-04 18:06:42 · 1739 阅读 · 0 评论 -
《C和指针》学习笔记(二)第七~第十章
1、机器无法判断值的数据类型,编译器根据值的声明类型创建适当的指令,机器只是盲目地执行这些指令而已2、char * strpbrk(const char * cs,const char * ct) 在源字符串(s1)中找出最先含有搜索字符串(s2)中任一字符的位置并返回,若找不到则返回空指针。3、函数声明向编译器提供函数的相关信息4、存根(stub)为尚未编写的程序站好位置5、无返...原创 2018-09-02 19:35:00 · 1668 阅读 · 0 评论 -
《C和指针》学习笔记(三)第十一章~第十五章
1、对每个从malloc返回的指针进行检查是否为NULL是很有必要的2、使用realloc后就不能使用原来的指向旧内存的指针3、传递给free的指针必须是从malloc\realloc\calloc返回的指针4、不能释放一部分的内存,不要访问被free掉的内存5、strdup()函数是c语言中常用的一种字符串拷贝库函数 extern char *strdup(char *s); ...原创 2018-09-03 20:43:21 · 1715 阅读 · 0 评论