
C/C++
文章平均质量分 86
我是不良人
古之成大事者,不惟有超世之才,亦必有坚韧不拔之志!
展开
-
堆和栈区别
<br /> 堆和栈区别<br /> <br /> 一个由c/C++编译的程序占用的内存分为以下几个部分:<br />(1)栈<br /> 栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。<br />(2)堆<br /> 堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方原创 2010-11-12 13:43:00 · 836 阅读 · 0 评论 -
C语言宏定义#符和##连接符的使用
C语言宏定义##连接符和#符的使用 C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号。比如下转载 2015-03-04 14:04:18 · 740 阅读 · 0 评论 -
栈帧详解
一、 什么是栈帧? 什么是栈帧,相信很多从事C编程的童鞋还是没有搞明白,首先引用百度百科的经典解释:“栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。”。 实际上,可以简单理解为:栈帧就是存储在用户栈上的(当然内核栈同样适用)每一次函数调用涉及的相关信息的记录单元。也许这样感觉更复杂了,好吧,让我们从栈开始来理解什么是栈帧...二、 栈(用户原创 2014-02-06 17:33:41 · 62886 阅读 · 17 评论 -
Linux内核符号表
1、形成过程 Linux内核符号表/proc/kallsyms的形成过程 (1)./scripts/kallsyms.c负责生成System.map (2)./kernel/kallsyms.c负责生成/proc/kallsyms (3)./scripts/kallsyms.c解析vmlinux(.tmp_vmlinux)生成kallsyms.S(.tmp_kallsy转载 2013-10-10 18:19:34 · 8299 阅读 · 0 评论 -
C语言运行时数据
1可执行文件的格式 在UNIX传统的操作系统中,所有编译生成的输出文件都缺省地使用同一个名字a.out,在现代操作系统中,a.out格式的可执行文件是链接器的输出,而不是汇编程序的输出(在计算机的远古时代,a.out是汇编器的输出,那个时候还没有链接器)。目标文件和可执行文件有几种不同的格式,大多数都采用了一种ELF的格式,更多的格式可以使用下面的命令来查看(有的系统中可原创 2013-06-26 16:31:25 · 2170 阅读 · 0 评论 -
C语言数组
在C语言中,对于三维或三维以上数组的使用并没有很好的支持,而且使用率也非常的低,后面会对三维数组做一些简单的分析,这篇文章主要以二维数组来探讨一些C语言中数组使用的相关概念和技巧。1 一个var[i][j]引用形式的可能声明 当你看见像var[i][j]这样的二维数组引用形式时,你能知道他是怎么被声明的吗?答案是否定的,指针和数组使用的部分通用性会让你无法判断这样的一种形式的声明原创 2013-06-25 15:21:19 · 2684 阅读 · 2 评论 -
C语言-数组和指针之间的较量
1 使用背景 当人们在学习编程时,可以看到大量的数组与指针互换的使用实例,比如下面的这个例子: char my_array[10]; char *my_ptr; ... i = strlen(my_array); i = strlen(my_ptr); 还有很多类似的语句:printf("%s %s", my_ptr, my_a原创 2013-06-24 18:37:52 · 2473 阅读 · 0 评论 -
C语言声明解析方法
1.C语言声明的单独语法成份 声明器是C语言声明的非常重要成份,他是所有声明的核心内容,简单的说:声明器就是标识符以及与它组合在一起的任何指针、函数括号、数组下表等,为了方便起见这里进行分类表示。 1)指针 (1)* (2)* const (3)* volatile (4)* const volatile (5)* volatile原创 2013-06-24 14:42:43 · 3388 阅读 · 0 评论 -
C运算符优先级的错误
1. 优先级运算符的使用 我相信玩过C的人都曾有过这样的或那样的不可思议经历,会非常感慨C的博大精深、深不可测,很多时候你根本不知道一条语句的真实执行情况(除非经过具体环境的编译和执行得出结论,可能你事后还是很迷茫),其实,有些已成事实特性并不是原本设计C语言时想要看到的,因为有些运算符的优先级是错误的,如果你不相信,下面就来看一下这样例子: i = 1, 2; 你觉原创 2013-06-24 10:53:12 · 1951 阅读 · 1 评论 -
一个TI屌丝男的半年计划
不知不觉毕业(工作)两年多了,回望这两年自己走过的路,虽然不是浑浑噩噩的度过,但也没在技术上有太多的进步,或者说没有达到自己的预期。对于个人,这两年的确有过不少难忘的经历,但真心不觉得达到可以说出来的地步,有时候会偶尔拾起来鞭策一下自己,这里也不想对过去做什么总结。 每当想起毕业后到现在的成长经历,都不自觉的有些失落,做技术的IT男要想成为大牛谈何容易,自认为这两年也看了不少的书籍,原创 2013-06-21 13:01:56 · 2521 阅读 · 2 评论 -
Camera模块解析之驱动篇
Camera模块解析之驱动篇1 手机摄像头功能概述手机摄像头功能由多个功能模块组成,主要三个部分,采集,加工,显示。(1)采集部分由感光的sensor完成,通过CAM IF接口与手机芯片内的CAM连接。(2)CAM对CAM IF数据进行加工,主要是格式转换,特殊原创 2011-08-15 18:51:21 · 16448 阅读 · 2 评论 -
android binder机制之——(创建binder服务)
Binder机制编程 前面的几篇文章详细介绍了android中binder机制的方方面面,相信你对binder机制已经有了较深刻的理解。俗话说得好“学以致用”,下面我们就通过在android系统中创建一个我们自己的binder服务,来加深对binder机制的理解。(原创 2011-07-27 22:48:46 · 7436 阅读 · 2 评论 -
android binder机制之——(我是binder实例)
Binder应用实例 前一篇文章我们从进程的C/C++层面讲解了binder机制的服务代理对象BpBinder的获取,和Binder底层处理方法。整个服务代理的获取过程也是binder机制的的核心内容,它涉及到了客户请求,请求的传递和处理,服务代理的生成和转换(封装原创 2011-07-27 18:35:46 · 24430 阅读 · 6 评论 -
android binder机制之--(我是Service Manager)
Service Manager 上篇文章android binder机制之--(我是binder)介绍了binder机制的概念,特点,应用模式和框架组成,这篇文章我们来介绍一下Android系统Binder机制的服务总管--Service Manager,servi原创 2011-07-24 11:51:34 · 8977 阅读 · 0 评论 -
android binder机制之--(我是binder)
(一)什么是binder 随着android移动设备平台系统的发展,Binder机制得到越来越多人的关注的。什么是binder,总体上说,Binder是一个轻量级的IPC组件框架,binder是一个分布式的组件架构,它类似于COM和CORBA。一个叫做open-binder原创 2011-07-23 19:49:18 · 10066 阅读 · 1 评论 -
android binder机制之--(我是Server Porxy)
服务代理对象 上一篇android binder机制之--(我是Service Manager)我们学习了Service Manager(服务管家)在Android Binder中的作用——服务(Service)注册,服务(Service)查询和获取等功能。原创 2011-07-24 20:47:50 · 7044 阅读 · 1 评论 -
C语言宏定义##连接符和#符的使用
C语言宏定义##连接符和#符的使用 C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念)。下面对常遇到的宏的使用问题做了简单总结。关于#和##在C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作(Stringfication),简单说就是在对它所引用的宏变量 通过替换后在其左右各加上一个双引号。比如下转载 2015-03-23 13:11:56 · 642 阅读 · 0 评论