![](https://img-blog.csdnimg.cn/20191213095938497.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
关注驱动移植
楼兰公子
这个作者很懒,什么都没留下…
展开
-
core dump 调试开关打开之C代码
/* ============================================================================ Name : switch_core.c Author : Version : Copyright : Your copyright notice Description : Hello World in C, Ansi-style ================================.原创 2020-07-28 19:50:03 · 1115 阅读 · 0 评论 -
数字转字符串的转换
#include <ctype.h> #include <stdio.h> void itoa (int n,char s[]) { int i,j,sign; if((sign=n)<0)//记录符号 n=-n;//使n成为正数 i=0; do{ s[i++]=n%10+'0';//取下一个数字 } while ((n/=10)>0);//删除该数字 if(sign<0) .原创 2020-05-26 10:51:40 · 180 阅读 · 0 评论 -
三元运算符存在的隐式转换现象
#include<stdio.h> int main(){ int x = 4; printf("%d\n",x>4?99.0:9); printf("%d\n",x>4?99:9); printf("%d\n",x>4?99:9.0); printf("%f\n",x>4?99:9.0); if(x>4){ printf("%d\n",99.0); }else{ printf("%f\n",9); .原创 2020-05-09 10:08:05 · 605 阅读 · 0 评论 -
C和C++重要区别
C和C++可以自然混合,C++是作为C的扩展设计的 C和C++数据类型基本相同, C和C++唯一区别是体现在函数名称上,C语言使用简单函数名,不考虑参数的个数和类型,C++总是将参数类型列表当做函数名的一部分, C++提供一些特殊的功能可以声明C函数,即C++程序可以直接声明并调用C函数 ...原创 2020-04-14 21:06:38 · 157 阅读 · 0 评论 -
优化之如何降低频繁申请&&释放内存
1,一次多申请些内存,可以降低申请频次 2,释放一块内存时,不是直接返还系统,而是将其缓存住,留待下次分配 3,以上操作可以降低系统调用频次,提高进程效率 ...原创 2020-02-23 00:15:30 · 729 阅读 · 0 评论 -
优化之glibc内存管理
P=1,表示上一块正在被使用,此时prev_size通常为0 P=0,表示上一块空闲,这时prev_size通常为上一块的大小 M=1,表示该内存块通过mmap来分配,只有在分配大块内存时,才采用mmap的方式,那么在释放时会由mumap_chunk()去释放,否则释放时由chunk_free()完成 M=0,则表示该内存块不采用mmap方式分配 glibc内存管理使用br...原创 2020-02-22 23:25:21 · 264 阅读 · 0 评论 -
优化之malloc函数实现逻辑
分配: Linux内核中专门为进程分配一段内存地址,用来存放的内容 进程申请内存的增加,进程会通过系统调用brk调高堆顶地址 扩展内存空间,从而Linux内核分配给进程更多的内存 释放: 进程释放内存时,进程优惠通过系统调用brk调低堆顶地址,缩减这段内存空间 Linux内核便会将其中一部分物理内存回收 存在的问题 是否为每次调用malloc ,new时都会调用系统调...原创 2020-02-22 22:49:32 · 309 阅读 · 0 评论 -
优化之为什么malloc时,要求输入内存区域大小:而在free时,不需要输入内存区域大小
当程序调用函数malloc申请内存时,并不是直接向操作系统申请,而是先由glibc内存管理器接收到请求,其分配一块内存病将内存地址返回给用户,同时在(p-4)这个地址记录下malloc空间的大小,glibc在free这块内存的时,在(p-4)的这个地址获得分配内存的大小,释放该快内存 ...原创 2020-02-22 22:36:09 · 763 阅读 · 0 评论 -
C&& C++ 的主要区别
https://www.jianshu.com/p/2522b07219ae https://www.cnblogs.com/wuyepeng/p/9607583.html 1)、标准:分别隶属于两个不同的标准委员会。C以C99标准为主流,C11已经发布;C++以C++98/03为主流,C++11/14也日趋流行。 2)、语言本身: 1、C++是面向对象语言,C是面向过程语言。 2...转载 2020-01-14 17:11:28 · 398 阅读 · 0 评论 -
底层const和顶层const的区分
1.辨别规则 利用右结合原则 右结合的是类型或者*则是底层const, 右结合的是标识符则是顶层const 2特性 底层const指的是与指针,引用有关联的 顶层const表示任意对象是常量 3. 在指针中既有顶层const也有底层const 在引用中只有底层const 4.底层const修饰的是常量指针又叫常指针 顶层const修饰的是指针常量,只能用对象...原创 2020-01-13 15:36:50 · 240 阅读 · 0 评论 -
代码风格关键点
1.使用4个TAB空头 2.注释采用/*---*/,并且代码放在函数头部,解释结果是什么,不要说明做了什么 3.文件信息注释 版权,文件名,作者,版本号,文件简介,修改日志 4.函数作用,参数含义,返回值含义 /* *@Description: *@param --1 *@param --2 *@return -- 返回值 */ 命名规则 1.清晰 2.完...原创 2019-12-26 10:44:08 · 161 阅读 · 0 评论