- 博客(19)
- 收藏
- 关注
转载 sourceinsight技巧
(转)Source Insight 经典教程 2推荐Source Insight经典教程 Source Insight实质上是一个支持多种开发语言(java,c ,c 等等)的编辑器,只不过由于其查找、定位、彩色显示等功能的强大,常被我们当成源代码阅读工具使用。作为一个开放源代码的操作系统,Linux附带的源代码库使得广大爱好
2009-12-23 19:00:00 953
转载 数据恢复
百度空间 | 百度首页 | 登录 ihgivThe striving after better hopes. 为了更美好的梦想而奋斗着!我们绝对不会为了短暂的利益,而放弃我们的未来”! 主页博客相册|个人档案 |好友 查看文章
2009-12-23 18:49:00 1261
转载 makefile模板
Makefile 模板 # 下面的变量可以在shell 的环境变量里面指定。# 也可以象下面这样在 Makefile 里面指定。# CC=gcc # 编译器# CFLAGS=-Wall -Werror -g # 编译器参数# LD=gcc
2009-12-23 17:04:00 523
转载 const用法详解
面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的 就const直接可以取代c中的#define 以下几点很重要,学不好后果也也很严重 const 1. 限定符声明变量只能被读 const int i=5; int j=0; ... i=j; //非法,导致编译错误 j=i; //合法 2. 必须初始化 const int i=5;
2009-12-10 17:17:00 499
转载 C++中typename关键字的使用方法和注意事项
1, 什么地方使用?用在模板定义里,标明其后的模板参数是类型参数。 例如 templateT foo(const T& t, const Y& y){//....};templaceclass CTest{private: T t;public: //...} 其实,这里最常用的是使用关键字class,而且二者功能完全相同,这里的cl
2009-12-08 17:21:00 767
转载 typedef用法
typedef用法 typedef 声明,简称 typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。 typedef 使用最多的地方是创建易于记忆的类型名,用它来归档程序员的意图。类型出现在所声明的变量名字中,位于
2009-12-08 17:21:00 873
转载 VC快捷方式
1.检测程序中的括号是否匹配 把光标移动到需要检测的括号(如大括号{}、方括号[]、圆括号()和尖括号 2.查看一个宏(或变量、函数)的宏定义 把光标移动到你想知道的一个宏上,就比如说最常见的DECLARE_MAP_MESSAGE上按一下F12(或右键菜单中的Go To Defition Of …),如果没有建立Browse files,会出现提示对话框,确定,然后就会跳到定义那些东西的地方。 3
2009-12-08 17:18:00 810
转载 Android的垃圾回收机制
android refbase类(sp wp) 这两天写v4l2的代码,所以再仔细看了sp和wp的实现过程~~ 个人觉得sp和wp实际上就是android 为其c++实现的自动垃圾 回收机制 ,具体到内部实现,sp和wp实际上只是一个实现垃圾回收功能的接口而已,比如说对*,->的重载,是为了其看起来跟真正的指针一样,而真正实现垃圾回收的是refbase这个基类。这部分代码的目录在:
2009-12-08 17:15:00 686
转载 Android事件处理
Init-----------zygote---------system-server-------------------windosmanager ------------------------------------------------------------ UEventObserver -----------------------------------------------
2009-12-08 17:11:00 814
转载 Android IPC 通讯机制源码分析 二
转自:http://hi.baidu.com/albertchen521/blog/item/822058d0f63ea2d4562c84a1.htmlClient A与Binder kernel通信:kernel/drivers/android/Binder.c)static int binder_open(struct inode *nodp, struct file *filp){s
2009-12-08 17:10:00 1157
转载 static_cast,dynamic_cast和reinterpret_cast
尽量使用C++风格的类型转换 仔细想想地位卑贱的类型转换功能(cast),其在程序设计中的地位就象goto语句一样令人鄙视。但是它还不是无法令人忍受,因为当在某些紧要的关头,类型转换还是必需的,这时它是一个必需品。 不过C风格的类型转换并不代表所有的类型转换功能。 一来它们过于粗鲁,能允许你在任何类型之间进行转换。不过如果要进行更精确的类型转换,这会是一个优点。在这些类型转
2009-12-07 17:08:00 509
转载 android drawing
Android Display System --- Surface Flinger 收藏 Android Display System --- Surface Flinger SurfaceFlinger 是Android multimedia 的一个部分,在Android 的实现中它是一个service ,提供系统 范围内的surface composer 功能,它能够将各种
2009-12-03 17:41:00 1155
转载 linux动态链接库的创建与使用
使用linux动态链接库: 在Unix上存在两种库:动态库(.so)和静态库(.a),采用动态库(共享对象)技术可以方便程序间共享,节省程序占有空间,增加程序的可扩展性和灵活性。 操作动态库的函数在dlfcn.h文件中定义,所以要在使用动态库时include 1. 打开动态链接库:dlopen,函数原型void *dlopen (const char *filename, in
2009-12-02 11:20:00 719
转载 linux驱动学习
一、ioctl大部分设备除了读写能力,还可进行超出简单的数据传输之外的操作,所以设备驱动也必须具备进行各种硬件控制操作的能力. 这些操作常常通过 ioctl 方法来支持,它有和用户空间版本不同的原型:int (*ioctl) (struct inode *inode, struct file *filp, unsigned int cmd, uns
2009-12-01 18:40:00 630
转载 linux ioctl解释
我这里说的ioctl函数是在驱动程序里的,因为我不知道还有没有别的场合用到了ioctl, 所以就规定了我们讨论的范围。为什么要写篇文章呢,是因为我前一阵子被ioctl给搞混 了,这几天才弄明白它,于是在这里清理一下头脑。 一、 什么是ioctl。 ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就
2009-12-01 18:34:00 960
转载 select, poll和epoll的区别
select()系统调用提供一个机制来实现同步多元I/O:#include sys/time.h>#include sys/types.h>#include unistd.h>int select (int n,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,struct timeval *timeout);FD_CLR
2009-11-30 16:42:00 637
转载 非阻塞I/O和阻塞I/O
拿 socket举例。当read数据时,如果这时没有数据可读,阻塞I/O会一直等待有数据读,数据从kernel copy 到socket的buffer后返回;非阻塞I/O会立即返回,但如果有数据可读,非阻塞I/O也是等数据从kernel copy 到socket的buffer后返回。以上是阻塞与非阻塞I/O的区别,但以上两个例子的read操作都是同步的,是不是很奇怪?点解称其为同步?
2009-11-30 10:51:00 634
转载 如何理解C和C++的复杂类型声明
曾经碰到过让你迷惑不解、类似于int * (* (*fp1) (int) ) [10];这样的变量声明吗?本文将由易到难,一步一步教会你如何理解这种复杂的C/C++声明。 我们将从每天都能碰到的较简单的声明入手,然后逐步加入const修饰符和typedef,还有函数指针,最后介绍一个能够让你准确地理解任何C/C++声明的“右左法则”。 需要强调一下的是,复杂
2009-11-27 15:41:00 521
转载 c指针详解
第一章 概念 指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int *ptr; (2)char *ptr; (3)int **ptr; (4)int (*ptr)[3]; (5)int
2009-11-27 09:55:00 466
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人