C/C++/java/jni/vi/栈/汇编/跳转
one's pygmy effort
这个作者很懒,什么都没留下…
展开
-
typedef常见用法
1.常规变量类型定义例如:typedef unsigned char uchar描述:uchar等价于unsigned char类型定义 uchar c声明等于unsigned char c声明2.数组类型定义例如: typedef int array[2];描述: array等价于 int [2]定义; array a声明等价于int a[2]声明转载 2014-09-21 16:23:14 · 597 阅读 · 0 评论 -
Linux下g++编译与使用静态库和动态库
在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库(*.a)与动态库(*.so)的生成与使用方式是不同的。刚开始可能会不适应,但是用多了应该会习惯这种使用,因为步骤上并没有VS下配置那么繁琐。下面就分别总结下linux下生成并使用静态库与动态库的方法转载 2016-07-02 14:54:47 · 7511 阅读 · 2 评论 -
C++11标准之右值引用(ravalue reference)
1、右值引用引入的背景临时对象的产生和拷贝所带来的效率折损,一直是C++所为人诟病的问题。但是C++标准允许编译器对于临时对象的产生具有完全的自由度,从而发展出了Copy Elision、RVO(包括NRVO)等编译器优化技术,它们可以防止某些情况下临时对象产生和拷贝。下面简单地介绍一下Copy Elision、RVO,对此不感兴趣的可以直接跳过:(1) Copy Elision Co转载 2016-08-21 19:35:47 · 1867 阅读 · 1 评论 -
深入理解java异常处理机制
1. 引子 try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。转载 2016-09-02 14:58:26 · 306 阅读 · 0 评论 -
基本JNI调用技术(c/c 与java互调)
注意我就是错在这个些包的名字上,导致调用失败1,在项目根目录下建立文件夹libs/armeabi文件夹2,将so库放入libs/armeabi文件夹注意事项:1,如果采用静态注册的方式请注意C文件中严格按照命名规则Java_packageName_className_method()的方式命名2,在Android项目中建立同上述命名规则中packageName中相同的包名,在此包名转载 2016-09-04 09:37:41 · 1576 阅读 · 0 评论 -
ubuntu-Linux系统读取USB摄像头数据(uvc)
这几天在做小车的过程中,需要用到图像采集。我想现在用的摄像头是UVC免驱的。根据国嵌的教程中有一个gspca摄像头的程序。我发现把gspca的采集程序用到uvc上时,在显示图像的时候提示没有huffman表。但是在显示gspca的摄像头时却没有问题。为此特别找了以下的程序来获取uvc摄像头的数据。程序代码:/* * capturing from UVC cam * requires:转载 2016-12-23 11:46:40 · 15607 阅读 · 0 评论 -
vim配置及插件安装管理(超级详细)
1写在前面 Linux下编程一直被诟病的一点是: 没有一个好用的IDE, 但是听说Linux牛人, 黑客之类的也都不用IDE. 但是对我等从Windows平台转移过来的Coder来说, 一个好用的IDE是何等的重要啊, 估计很多人就是卡在这个门槛上了, "工欲善其事, 必先利其器"嘛, 我想如果有一个很好用的IDE, 那些Linux牛人也会欢迎的. 这都是劳动人民的美好愿望罢了转载 2016-07-28 16:12:41 · 642 阅读 · 0 评论 -
vi 手札
vi 中去掉 高亮 底行命令模式 :noh原创 2015-02-07 18:31:49 · 431 阅读 · 0 评论 -
二叉排序树的查找、插入和删除
1. 二叉排序树二叉排序树(Binary Sort Tree)或者是一棵空树,或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;(4)没有结点值相同的结点。二叉排序树又称二叉查找树(Binary Search Tree)转载 2017-03-04 12:03:12 · 2490 阅读 · 0 评论 -
为何汇编里调用C函数需要堆栈,而汇编语言的函数的调用却不需要堆栈
原文地址:http://www.cnblogs.com/myblesh/archive/2012/04/07/2435737.html之前看了很多关于uboot的分析,其中就有说要为C语言的运行,准备好堆栈。而自己在Uboot的start.S汇编代码中,关于系统初始化,也看到有堆栈指针初始化这个动作。但是,从来只是看到有人说系统初始化要初始化堆栈,即正确给堆栈指针sp赋值,但是转载 2014-12-15 22:16:03 · 628 阅读 · 0 评论 -
对韦东山老师移植最新uboot的总结
一:准备移植1、从下面的官网下载最新的U-boot。用google英文版搜索最新的u-boot源码 ftp://ftp.denx.de/pub/u-boot/2、建立sourceinsight工程 a、解压并在E:\colin weidongshan\transplant_u-boot-2012.04.01\u-boot-2012.04.01建立SI b、添加文件到SI工程转载 2015-05-15 15:36:56 · 3048 阅读 · 0 评论 -
ARM汇编 beq和bne %BXX前XXb, %FXX后XXf
%BXX前XXb,%FXX后XXf1、前阵子看cpu从sleep模式唤醒时,对tst bne和tst beq有些模糊。先记录:摘抄如下:TST R0, #0X8BNE SuspendUp ;BNE指令是“不相等(或不为0)跳转指令”:LDR R1,#0x00000000先进行and运算,如果R0的第四位不为1,则结果为零,则设置zero=1转载 2014-12-29 18:16:54 · 2828 阅读 · 0 评论 -
\r \n 手札
一. VS2014的效果是这样:(\r\n和\n\r效果和\n一样)1.abc \n d 输出:abc在第一行,d在第二行2.abc \r d 输出:\r前的字母消失,只有一行输出d.3.在2的基础上在最右边加上,就会出现后面替换前面的效果: abc \r d 输出:d取代a输出dbc \r你会回到该句首端,\n你到下一句的首端。原创 2016-05-26 16:56:18 · 359 阅读 · 0 评论 -
Java 按位与(&)和短路与(&&)按位或(|)和短路或(||)的区别总结
按位与&和短路与&&区别:& 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。举例如下:12&5 的值是多少?答:12转成二进制数是1100(前四位省略了),5转成二进制数是0101,则运算后的结果为0100即4 这是两侧为数值时;转载 2016-03-12 11:31:59 · 507 阅读 · 0 评论 -
typedef __u32 __bitwise __be32 means in linux [duplicate]
I extract from file (http://cpansearch.perl.org/src/HAWK/IPTables-libiptc-0.52/include/linux/types.h ) these defines :#ifdef __CHECKER__#define __bitwise__ __attribute__((bitwise))#else#define转载 2016-03-18 18:41:30 · 1522 阅读 · 0 评论 -
C语言 变量 手札
8.9.2 auto变量函数中的局部变量,如不专门声明为static存储类别,都是动态地分配存储空间的,数据存储在动态存储区中。函数中的形参和在函数中定义的变量(包括在复合语句中定义的变量),都属此类,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。这类局部变量称为自动变量。自动变量用关键字auto作存储类别的声明。例如:int f(int a) /*定原创 2014-09-22 19:28:55 · 668 阅读 · 0 评论 -
static inline
英文版: http://www.kernel.org/doc/Documentation/SubmittingPatches#ifdef 是丑陋的混杂了 ifdef 的代码难以阅读和维护。别这样做。作为替代,将你的 ifdef 放在头文件里,有条件地定义 "static inline" 函数,或者宏,在代码里用这些东西。让编译器把那些"空操作"优化掉。一个简单的例子,不好的转载 2014-09-22 11:02:51 · 678 阅读 · 0 评论 -
c语言 头文件 手札
序号 库类别 头文件 ---------------------------------------- 0 错误处理 errno.h 1 字符处理 ctype.h 2 地区化 local.h 3 数学函数原创 2014-12-03 19:10:10 · 521 阅读 · 0 评论 -
C语言 预处理命令之条件编译 手札
#空指令,无任何效果#include包含一个源代码文件 "私有"#define(定义宏) 避免歧义 defined #undef取消已定义的宏#if如果给定条件为真(非0),则编译下面代码,直到出现#else、#elif或#endif为止;否则就不编译。#ifdef如果宏已经定义,则编译下面代码#ifndef如果宏没有定义,则编译下面代码#elif如果前面的#if给定原创 2014-12-03 23:39:33 · 601 阅读 · 0 评论 -
C 语言 结构体 手札
一、 定义一个结构的一般形式定义一个结构的一般形式为:struct 结构名{成员表列};成员表列由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:类型说明符 成员名;成员名的命名应符合标识符的书写规定。例如:struct stu{int num;char name[20];char sex;float s原创 2014-12-07 17:36:18 · 489 阅读 · 0 评论 -
LINUX下GDB反汇编和调试
Linux下的汇编与Windows汇编最大的不同就是第一个操作数是原操作数,第二个是目的操作数,而Windows下却是相反。1、 基本操作指令简单的操作数类型说明,一般有三种,(1)立即数操作数,也就是常数值。立即数的书写方式是“$”后面跟一个整数,比如$0x1F,这个会在后面的具体分析中见到很多。(2)寄存器操作数,它表示某个寄存器的内容,用符号Ea来表示任意寄存器a,用引用R[转载 2015-05-15 15:28:31 · 1962 阅读 · 0 评论 -
C语言 指针 手札 (函)值
1.int *p;2.int **p;3.int *p[10];4.int (*p)[10];5.int *p(int);6.int (*p)(int);7.int (*p[10])(int);原创 2014-09-24 14:01:40 · 638 阅读 · 0 评论 -
Java中String类的方法及说明
String : 字符串类型一、构造函数 String(byte[ ]bytes):通过byte数组构造字符串对象。 String(char[ ] value):通过char数组构造字符串对象。 String(Sting original):构造一个original的副本。即:拷贝一个original。 String(StringBuff转载 2015-09-10 18:28:13 · 398 阅读 · 0 评论 -
java String常见十大问题
一、如何判断两个String是否相等??使用”==“还是使用”equals()“? 对String来说,”==“是用来判断两个字符串(对象)的地址是否相同,即判断是否是同一个字符串的应用。”equals()“则是判断两个字符串(对象)的值是否相等,如果相等则返回true。一般情况下,都是使用”equals()“来判断两个字符串的值是否相等,只有当你需要判断两个字符串是否是同一个对象时,才翻译 2015-09-14 16:48:27 · 913 阅读 · 0 评论 -
C99的新关键字_Bool
C99标准定义了一个新的关键字_Bool,提供了布尔类型。以前,C程序员总是使用自己的方法定义布尔类型。 0表示false,非0表示true。可能使用char类型表示一个布尔类型,也可能使用int类型表示一个布尔类型。很多函数库都定义了自己的布尔类型和相应的宏,枚举,typedef。 现在C99把C语言原生的布尔类型带来了。#include这个头转载 2016-03-18 18:37:48 · 3818 阅读 · 1 评论 -
按位 BEQ(相等跳转) bne(不相等跳转) 手札
1. 按位 & 按位与, | 按位或 , ^ 按位异或AND (位与&) OR ( 位或| ) XOR ( 位异或^ )1 & 1 = 1, 1 | 1 = 1, 1 ^ 1 = 01 & 0 = 0, 1 | 0 = 1,原创 2014-12-29 17:39:45 · 11026 阅读 · 0 评论