随笔分类 -  C

摘要:一、区别 内存溢出 out of memory,是指程序在申请内存之后,没有足够的空间供其使用。 比如申请了integer,但给他存了一个long才能存下的数。 内存泄漏 memory leak ,是指程序在申请内存后,无法释放已申请的空间。 一次泄漏可以忽略,但内存泄漏堆积后,会导致内存被占用完。 阅读全文
posted @ 2020-07-17 09:39 朱果果 阅读(190) 评论(0) 推荐(0)
摘要:大小 一个C代码文件必须小于 1000 行(包含注释); 一个C 函数必须小于150行(包含注释); 注释 实现代码与注释比列(6:4) 新建文件,在文件头部需添加注释,如下: /* ********************************************************** 阅读全文
posted @ 2020-07-16 17:22 朱果果 阅读(432) 评论(0) 推荐(0)
摘要:Linux 下 的 cc 和 gcc 更改Ubuntu gcc、g++默认编译器版本 g++ gcc 的区别 阅读全文
posted @ 2020-05-28 18:05 朱果果 阅读(470) 评论(0) 推荐(0)
摘要:转自:https://blog.csdn.net/weixin_33724659/article/details/88028054 为了说明这个问题,咱们简单的来说一下C里面变量在内存里面的存储: 1.栈区(stack)— 由编译器自动分配释放 ,存放为运行函数而分配的局部变量、函数参数、返回数据、 阅读全文
posted @ 2020-03-26 12:05 朱果果 阅读(2057) 评论(1) 推荐(0)
摘要:看题: 若已定义 char s[10]; 则在下面表达式中不表示s[1]的地址的是。A、s+1B、s++C、&s[0]+1D、&s[1] 解析: c、&s[0]+1取出s[0]的地址再加一 这个一不是说的字节数 好比指针指向下一个地址 也就是s[1]的地址 B、普通指针可以进行++、--运算,常指针 阅读全文
posted @ 2020-03-25 12:32 朱果果 阅读(1361) 评论(0) 推荐(0)
摘要:volatile详解见:https://wenku.baidu.com/view/9ec1690eee06eff9aef80745.html volatile修饰的变量可以避免编译器的优化,即不会从存取速度较快的寄存器中访问变量,而是访问原始内存地址。因为变量在原始内存里的志可能被改变却不会同步其寄 阅读全文
posted @ 2020-02-25 19:54 朱果果 阅读(227) 评论(0) 推荐(0)
摘要:static部分转载于博文:static的作用 static在嵌入式C编程中很常见,现总结一下其作用: 1、隐藏 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性 示例:同时编译a.c 与 main.c 1 #include <stdio.h> 2 char a = ' 阅读全文
posted @ 2020-02-25 17:43 朱果果 阅读(553) 评论(0) 推荐(0)
摘要:汇编指令:逻辑指令、算术指令、跳转指令 .text /* 逻辑指令 */ mov r7,#0x88 @ and r0,r1,#0xFF //r0=r1&0xFF @ orr r7,r7,#0xffff77 //r7=r7&0x88,清除7号3号位,但立即数太大,报错 bic r7,r7,#0x88 阅读全文
posted @ 2020-02-07 17:45 朱果果 阅读(1747) 评论(0) 推荐(0)
摘要:引用结构体成员时,有时用点运算符( . ),时而是用箭头运算符( -> );两者之间的使用有什么区别? 相同点:两者都是二元操作符,而且右边的操作数都是成员的名称。不同点:点运算符( . )的左边操作数是一个结果为结构的表达式; 箭头运算符( -> )的左边的操作数是一个指向结构体的指针。 1 ty 阅读全文
posted @ 2020-02-02 00:15 朱果果 阅读(3821) 评论(0) 推荐(0)
摘要:转自:C语言中的回调函数(Callback Function) 一文搞懂C语言回调函数 一、回调函数定义及使用场景 回调函数是一个通过函数指针调用的函数,然后把这个函数(入口地址)作为参数传给其他函数中,由其他函数在运行时来调用。回调函数是由使用者自己实现的。简单来说,就是由别人的函数运行期间来回调 阅读全文
posted @ 2020-01-29 23:12 朱果果 阅读(485) 评论(0) 推荐(0)
摘要:printf函数与缓冲区 printf函数是一个行缓冲函数,先将内容写到缓冲区,满足一定条件后,才会将内容写入对应的文件或流中。 基本条件如下: 1.缓冲区填满 2.写入的字符中有‘\n’ '\r' 3.调用fflush或stdout手动刷新缓冲区 4.调用scanf等要从缓冲区中读取数据时,也会将 阅读全文
posted @ 2019-12-11 19:54 朱果果 阅读(2747) 评论(0) 推荐(0)
摘要:本文介绍malloc和free函数的内容。 在C中,对内存的管理是相当重要。下面开始介绍这两个函数: 一、malloc()和free()的基本概念以及基本用法: 1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指 阅读全文
posted @ 2019-11-22 19:34 朱果果 阅读(335) 评论(0) 推荐(0)
摘要:GDB介绍 使用GDB 调试命令 GDB介绍 GUN Procject debugger 支持 汇编、C、C++、GO等语言 使用printf调试代码,及其低效耗时,尤其对于工程代码。GDB调试是Linux平台上最为强大的调试工具。 使用GDB 对于C程序来说,需要在编译时加上-g参数,保留调试信息 阅读全文
posted @ 2019-11-17 19:12 朱果果 阅读(290) 评论(0) 推荐(0)
摘要:数组名是常量不能自加 C、s[0]的地址再加一就是s[1]的地址 &s[0]+1=&s[1] #define M(x,y,z) x*y+z​​M(a+b,b+c,c+a)​宏展开 a+b*b+c+c+a = 12​如果这样声明 #define M(x,y,z) (x)*(y)+z​​宏展开 (a+b 阅读全文
posted @ 2019-11-10 09:25 朱果果 阅读(257) 评论(0) 推荐(0)
摘要:1、static局部变量与普通局部变量的异同 相同点:都是局部变量,在函数内部定义,仅能被该模块内部的语句所访问。 不同点: 1)内存分配与释放: static修饰的局部变量在内存中存放在静态存储区,static修饰的局部变量只有在整个程序结束的时候才会自动释放。若下次调用该局部变量所在的函数时,不 阅读全文
posted @ 2019-10-24 16:55 朱果果 阅读(2669) 评论(0) 推荐(1)
摘要:C—变量 在C语言中,变量要先定义后使用。 使用时,必须说明变量的存储类型与数据类型。 变量说明的一般形式: <存储类型> <数据类型> <变量名> 存储类型的关键词有 auto、register、static、extern 数据类型可以是基本数据类型,也可以是自定义的数据类型。 auto与regi 阅读全文
posted @ 2019-10-23 19:36 朱果果 阅读(306) 评论(0) 推荐(0)
摘要:Tips 1.寄存器变量可以用来优化加速c语言程序 2.声名只需在类型前多加register 即可,eg register int quick; (quick 就是一个整形的寄存器变量) 3.register只是一个建议型关键字,能不能声名成功还取决于编译器(建议型的关键字还有c++中的 inlin 阅读全文
posted @ 2019-10-22 19:56 朱果果 阅读(2016) 评论(0) 推荐(0)