
编程技巧
文章平均质量分 57
GH_HOME
这个作者很懒,什么都没留下…
展开
-
句柄和指针的区别
转自 http://blog.chinaunix.net/uid-16937328-id-271438.html 当把硬盘上的资源调入内存以后,将有一个句柄指向它,但是句柄只能指向一个资源。而且句柄知道所指的内存有多大。还有指针,指针指向地址,它不知道分配的内存有多大。 但是如果你定义一个句柄,然后在VC里面右击鼠标,选择"go to definition of han转载 2015-08-17 16:14:06 · 686 阅读 · 0 评论 -
刷新android中的媒体库
1. 问题概述使用我们自己写的程序生成一张图像或者一段视频,存放在SD卡的某个位置下,之后打开系统自带媒体库(图库)无法找到对于的图像和视频。连上电脑打开相应文件夹也找不到相应的文件?但是当手机重启之后,不管是在媒体库里找还是连上电脑搜索都可以找到。这其中发生了啥?2. 问题原因Android 内部维护了很多数据库,比如媒体数据库、联系人数据库等等。你在生成视频后并没有将视频的位置添加到这个数据库中原创 2016-12-12 18:10:54 · 3615 阅读 · 1 评论 -
android 中的引用
转自:http://www.jiangwenrou.com/java%E7%9A%84%E5%9B%9B%E7%A7%8D%E5%BC%95%E7%94%A8.htmlJava中存在四种引用,它们分别是:强引用(StrongReference),软引用(SoftReference),弱引用(WeakReference),虚引用(PhantomReference).下面分别介绍: 强引用(Stron转载 2016-09-07 15:58:14 · 838 阅读 · 0 评论 -
NDK编译选项的几个解释
NDK程序运行速度的决定因素主要由编译选项所决定,分布在android.mk与application.mk两个makefile中 Application.mk 变量 含义 APP_PROJECT_PATH 项目路径 APP_MODDLE 模块编译列表 APP_OPTIMAL 设置程序为release或者debug版 APP_CFLAGS C/C++编译选项 A原创 2016-09-19 14:34:42 · 986 阅读 · 0 评论 -
cmake自学
cmake 命令与visual studio的对应 cmake visual studio PROJECT(name) 解决方案名称 name ADD_EXECUTABLE(name ${SRC_LIST}) 工程名称 生成exe名称 name 设置cmake的编译器 首先使用 cmake -help获取cmake支持的编译器 运行 cmake -G “Visual Stud原创 2016-09-17 16:32:56 · 1177 阅读 · 0 评论 -
git笔记
git add AndroidManifest.xml 这是添加单个文件的方法 git add src 添加某个目录,加目录名 git add . 表示添加所有的文件在.gitignore文件中添加 bin/ gen/ 表示忽略这两个文件夹下的文件 加入 *.png 表示忽略后缀名为png的文件git status 查看自上次提交后文件修改的内容。(eg. Git 提醒我们 Main原创 2016-07-19 09:07:21 · 399 阅读 · 1 评论 -
关于C语言中的static关键字
用static声明一个变量的作用有两方面: 对局部变量用static声明,则使得该变量在整个程序执行期间不释放,为其分配的空间始终存在 全局变量用static声明,则该变量的作用域只限于本文件模块(即被声明的文件中) 一般我们我们在设计程序中希望有些外部变量只限于本文件适用,而不能被其他文件引用,这时可以在定义外部变量的时候加一个static声明。 在程序设计中,常有不同人完成各个模块,个人可以独原创 2016-06-10 13:54:24 · 462 阅读 · 0 评论 -
关于C语言中的extern关键字
一. 概述extern是在外部定义的全局变量,其作用域是从变量的定义处开始,到本程序文件的末尾。在此作用域内,全局变量可以为程序文件中的各个函数多引用。编译时,外部变量分配在静态存储区内。在extern声明外部变量的时候,类型名可以可不写, extern int A,B 等价于 extern A,B二.利用extern在单个文件中扩展全局变量的作用域如果外部(全局)变量不在文件的开头处定义,其有效作原创 2016-06-09 16:04:05 · 1036 阅读 · 0 评论 -
关于C++的类的几点注意点
析构函数绝对不会有返回值,也没有任何参数,绝对不可能重载 析构函数用于释放在构造函数或对象生命周期内分配的资源,在对象结束生命后会自动调用析构函数来善后。感觉一般都是我们在构造对象的时候,在对象内部要手动申请一块内存,然后我们在析构函数中需要将其释放掉 即使是自己定义的类,C++也提供默认的成员逐一初始化。比如下面的代码 MyClass zhangsan; MyClass lisi=原创 2016-05-28 16:13:32 · 498 阅读 · 0 评论 -
自动检测溢出的unsigned int加法
int uadd_ok(unsigned int a, unsigned int b) { int result =a+b; if(result>a) { printf("the add is ok\n"); } else { printf("the add is原创 2016-05-15 17:04:48 · 1577 阅读 · 0 评论 -
深入理解计算机系统-2(信息存储)
2.1. C语言中的移位运算这里有两种移位操作:算术移位和逻辑移位,其主要差别在于有符号数的负数上。 对于x=00110011而言 y=x>>3 * 逻辑移位 y=00000110 * 算术移位 y=00000110对于x=10110011而言 y=x>>3 - 逻辑移位 y=00010110 - 算术移位 y=11110110也就是说:算术右移是在最左端补k个最高有效位的值,而逻原创 2016-05-15 16:21:39 · 595 阅读 · 0 评论 -
深入理解计算机系统3.1节
总结 计算机执行机器代码。GCC编译器首先会利用汇编器将C语言编译为汇编语言,而汇编语言是机器代码的文本表示,之后GCC调用汇编器和链接器将汇编代码转换为机器代码。 相对于人为编写的汇编程序而言,由机器转换高级语言得到的汇编程序通常不太好理解,因为优化编译器能够重新排列执行顺序,消除不必要的计算,用快速操作替换慢速操作,甚至将递归计算转换为迭代计算。 机器语言的主流是INTEL IA32以及 x86原创 2016-04-19 22:05:44 · 1167 阅读 · 0 评论 -
链表头结点作用
转自:http://blog.chinaunix.net/space.php?uid=20754930&do=blog&id=3336495 数据结构中,在单链表的开始结点之前附设一个类型相同的结点,称之为头结点。头结点的数据域可以不存储任何信息,头结点的指针域存储指向开始结点的指针(即第一个元素结点的存储位置)。 作用 1、防止单链表是空的而设的.当链表为空的时候,带头结点转载 2015-08-07 11:20:52 · 1709 阅读 · 0 评论 -
光流法
另外一种推导方式是基于最优化求导和泰勒展开来实现的 由于标准LK算法的前提是泰勒展开足够近似,也就是说pixel displacement is small 光流较小。所以为了足够精确,采用了迭代的方法。事实上没迭代一次,就更新一下图的位置,让两张track的图的位置接近一次,然后再根据此时的图的位置加上标准光流方法重新计算光流,更新光流。根据光流方程的残差是否小于设定精度以及迭代次数小于设定阈值来原创 2016-05-29 22:58:53 · 1298 阅读 · 0 评论