
C/C++
SimbaYu7
这个作者很懒,什么都没留下…
展开
-
Linux内核中mktime()函数算法分析
Linux内核中的mktime()函数位于kernel/time.c内该函数主要用于内核启动时,将CMOS中的 年-月-日 时:分:秒 信息转换为距离1970-01-01 00:00:00的秒数具体定义如下: unsigned long mktime(const unsigned int year0, const unsigned int mon0,转载 2011-11-18 01:22:39 · 1395 阅读 · 0 评论 -
Java的移位(>>和>>>)运算问题
解读 运算符>>指的是对它左边的操作数带符号右移位。我们知道数据的补码表示,如果是负数,那么它的最高位是1,所以右移位操作时左边的空缺用1填补。 运算符>>>也是右移,但它与>>的区别是对于负数,右移不是用1填补,而是用0填补。也就是>>>不考虑数的正负,机械地移位就是了。 另外:>>>的左边操作数如果是char,byte,short,运算前会先转换成int,运转载 2012-05-05 14:16:39 · 577 阅读 · 0 评论 -
pure virtual function called--虚函数调用错误
参考:http://www.artima.com/cppsource/pure_virtual.html前几天我们项目刚刚解决了一个pure virtual function call引起的stopship的bug,乘热打铁,学习总结一下。一、理论上case当一个纯虚函数被调用到时,vc++的debug模式下会弹出这么一个对话框:然后就是crash了转载 2012-05-08 20:16:39 · 3128 阅读 · 0 评论 -
tslib 入门学习
struct tsdev { int fd; struct tslib_module_info *list; };struct ts_sample { int x; int y; unsigned int pressure; struct timeval tv;};tslib转载 2012-06-06 12:41:44 · 1257 阅读 · 0 评论 -
Tslib的移植
移植Tslib1 下载源码tslib-x.x.tar.gz2 解压,cd tslib3 生成configure ./autogen.sh4 配置,生成Makefile ./configure --host=arm-none-linux-gnueabi(平台) --prefix=/(安装目录) --enable-debug=no5 编译 make6 安装 make i转载 2012-06-06 15:04:25 · 653 阅读 · 0 评论 -
C语言 clock() 函数使用心得
0、实践环境:Linux - Android 1、头文件 #include 2、返回值clock_t3、第一次调用时返回 04、单位微秒5、可用于计算程序执行所耗时间,精度很高。原创 2012-05-17 16:13:12 · 1378 阅读 · 0 评论 -
C++中 打印size_t 和 ssize_t
#Use the z modifier:size_t x;ssize_t y;printf("%zu\n", x); // prints as unsigned decimalprintf("%zx\n", x); // prints as hexprintf("%zd\n", y); // prints as signed decimal原创 2012-06-29 18:23:03 · 24434 阅读 · 0 评论 -
C语言运算符级别分类
1级(左结合) ( ) 圆括号;[ ]下标运算符;->指向结构体成员运算符;. 结构体成员运算符。 2级(右结合) “ ! ”逻辑非运算符;“ ~ ”按位取反运算符;“ ++ ”前缀增量运算符;“ -- ”前缀减量运算符; “ - ”负号运算符;(类型)类型转换运算符;“ * ”指针运算符;“ & ”地址运算符; “sizeof转载 2012-07-01 20:06:47 · 1255 阅读 · 0 评论 -
ACE自适配通信环境(ADAPTIVE Communication Environment)
一、ACE综述 ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)框架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++ Wrapper Facade(包装外观)和框架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、转载 2012-07-17 20:01:51 · 2061 阅读 · 0 评论 -
[JAVA]MinGW-GCC 如何编译JNI程序
本文并非介绍如何编写JNI程序,相关资料可以参考java tutorial。这里只是简单示范如何用MinGW-GCC去编译JNI程序。第一步:编写java程序public class HelloWorld { public native void displayHelloWorld(); static { System.loadLibr转载 2012-08-23 09:40:59 · 1230 阅读 · 0 评论 -
12 Interesting C Interview Questions and Answers
In this article, we will discuss some interesting problems on C language that can help students to brush up their C programming skills and help them prepare their C fundamentals for interviews.1转载 2012-09-08 11:40:08 · 779 阅读 · 0 评论 -
C中的预编译宏定义
转自:http://www.uml.org.cn/c++/200902104.asp在将一个C源程序转换为可执行程序的过程中, 编译预处理是最初的步骤. 这一步骤是由预处理器(preprocessor)来完成的. 在源流程序被编译器处理之前, 预处理器首先对源程序中的"宏(macro)"进行处理. C初学者可能对预处理器没什么概念, 这是情有可原的: 一般的C编译器都将预处理, 汇编,转载 2013-03-29 14:51:09 · 1032 阅读 · 0 评论 -
VC10中的C++0x特性 Part 2 :右值引用
转自:VC10中的C++0x特性 Part 2 :右值引用简介 这一系列文章介绍Microsoft Visual Studio 2010 中支持的C++ 0x特性,目前有三部分。 Part 1:介绍了Lambdas, 赋予新意义的auto,以及 static_assert; Part 2:介绍了右值引用(Rvalue References); Pa转载 2015-12-11 20:11:57 · 724 阅读 · 0 评论 -
VC10中的C++0x特性:Lambdas,auto,以及 static_assert
转自: VC10中的C++0x特性:Lambdas,auto,以及 static_assert 简介 这一系列文章介绍Microsoft Visual Studio 2010 中支持的C++ 0x特性,目前有三部分。 Part 1:介绍了Lambdas, 赋予新意义的auto,以及 static_assert; Part 2:介绍了右值引用(转载 2015-12-11 20:17:28 · 708 阅读 · 0 评论 -
关于C++中函数返回引用的讨论
从函数返回引用确保其引用的对象在函数执行完后仍然存在。引用类型返回值的主要特征是可以作为左值,这意味着我们可以在赋值语句的左边使用返回引用的函数的结果。 永远不要从函数中返回局部变量的引用 C++中,返回引用是一个比较晦涩的概念。在书中,对此仅仅做了一个一般的介绍,并没有展开。我觉得有必要对此进行一定的展开。(1)首先,返回引用,要求在函数的参数中,包含有以引用方转载 2012-04-20 13:32:36 · 519 阅读 · 0 评论 -
关于sprintf和snprintf的正确使用
关于sprintf和snprintf的正确使用。考虑以下有缺陷的例子:void f(const char *p){ char buf[11]={0}; sprintf(buf,"%10s",p); // very dangerous printf("%sn",buf);}不要让格式标记“%10s”误导你。如果p的长度大于10个字符,那么sp转载 2012-04-19 08:10:00 · 1177 阅读 · 0 评论 -
Android NDK 开发的栈错误调试
怎样快速的定位错误:view call stack of crashed application on androidOn android, when a process crashes in native code, the call stack of the process will be saved to a log file in /data/tombstomes/,转载 2011-11-09 12:34:19 · 2454 阅读 · 0 评论 -
通过两个点的经纬度计算距离
从google maps的脚本里扒了段代码,没准啥时会用上。大家一块看看是怎么算的。private const double EARTH_RADIUS = 6378.137;private static double rad(double d){ return d * Math.PI / 180.0;}public static double GetDistan转载 2011-12-03 15:30:31 · 923 阅读 · 0 评论 -
用 Eclipse + GDB调试Android中C/C++程序
一、前期准备1、编译通过的Android源代码(我是Android 2.3)2、安装了CDT的Eclipse3、重新编译Android gdbserver(非必须) 因手头Android 2.3源码编译后的版本执行gdbserver时报错:Segmentation fault,不得不重新编译gdbserver。参考博文:自己编译Androi原创 2012-02-11 09:57:51 · 3392 阅读 · 0 评论 -
用GDB调试Android中C/C++程序(命令行)
一、编译Android gdbserver(非必须) 因手头Android 2.3源码编译后的版本执行gdbserver时报错:Segmentation fault,不得不重新编译gdbserver。1、编译gdbserver编译过程参考博文:自己编译Android gdbserver(解决运行 gdbserver时 Segmentation fault 问题原创 2012-02-10 20:16:09 · 2181 阅读 · 0 评论 -
C++中构造函数调用构造函数
#include #include using namespace std;struct CLS{ int m_i; CLS( int i ) : m_i(i){} CLS() { CLS(0); }};int main(){ CLS obj; cout << obj.m_i << endl; sys转载 2012-03-23 19:59:11 · 622 阅读 · 0 评论 -
深入理解C/C++函数指针
原文地址:http://blog.sina.com.cn/u/1082089673函数指针数组的妙用 笔者在开发某软件过程中遇到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0])转载 2012-03-25 16:19:04 · 651 阅读 · 0 评论 -
C++内存管理
一篇让人受益匪浅的文文章,原文:伯乐共勉的C++内存管理,以下转载:[导语]内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C+转载 2012-03-17 10:04:55 · 1076 阅读 · 0 评论 -
用汇编的眼光看C++(之 总结篇)
转帖此处,方便品读。【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 早在八月份的时候,就陆陆续续写了二十多篇用汇编语言看C++的博客内容。在此为了做一个概括,也为了朋友们看起来更方便,我们利用这么一篇博客对所有的文章做一个总结。如果有朋友们在观看的过程当中发现了问题,恳请多多指教,谢谢。转载 2012-03-17 10:34:26 · 853 阅读 · 0 评论 -
c++面向对象编程必备“良方”(欢迎大家来补充!)
前言:c++面向对象中的繁琐机制,不得不让你在编程中频频“犯病”,找错误,找bug,困扰,是你的病源所在,本人虽不是什么“良医”, 却也算是总结出以下“良方”。注:难免会有记忆上的遗漏,知识上的不够,遗漏之处还需大家来补充啊!http://blog.youkuaiyun.com/zhanxinhang药方1 ☞ 必需时刻明白面向对象编程中要扮演的两个角色,一个就是你,类的设计者,一个就是用转载 2012-03-17 10:50:32 · 531 阅读 · 0 评论 -
位操作基础篇之位操作全面总结
Title: 位操作基础篇之位操作全面总结Author: MoreWindowsE-mail: morewindows@126.comKeyWord: C/C++ 位操作 位操作技巧 判断奇偶 交换两数 变换符号 求绝对值 位操作压缩空间 筛素数 位操作趣味应用 位操作笔试面试位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大转载 2012-03-20 21:50:05 · 1397 阅读 · 1 评论 -
浅谈C++容器
在面向对象的语言中,大多引入了容器的概念。那么 什么 是 容器?实质上就是一组相同类型对象的集合,但是它又不仅仅像数组那样简单,它实现了比数组更复杂的数据结构,当然也实现了比数组更强大的功能。C++ 标准模板库里提供了10 种通用的容器类,它基本上可以解决程序中遇到的大多数问题。 现在我主要来说明这10 种通用容器的功能用途以及相互之间的相同与异同。但是在这里,我不提倡一开始就着手从这10转载 2012-03-22 07:35:29 · 1021 阅读 · 0 评论 -
标准c++文件操作
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout2、析取器(>>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>转载 2012-04-18 20:39:11 · 643 阅读 · 0 评论 -
atoi和strtol的区别和使用
atoi和strtol函数均是把字符串转换成整数,两者的不同点主要是:1,atoi的返回值无法区分是正常的返回还是错误的返回,如: int val; val = atoi("abc"); 与val = atoi("0"); 两者返回的val均为0,因此无法区分哪个是正确parse后的值。 2,strtol函数对异常的返回转载 2012-04-18 20:40:04 · 1672 阅读 · 0 评论 -
VC10中的C++0x特性 part 3 : 声明之类型
转自:VC10中的C++0x特性 part 3 : 声明之类型简介 这一系列文章介绍Microsoft Visual Studio 2010 中支持的C++ 0x特性,目前有三部分。 Part 1 : 介绍了Lambdas, 赋予新意义的auto,以及 static_assert; Part 2 : 介绍了右值引用(Rvalue References)转载 2015-12-11 20:21:21 · 688 阅读 · 0 评论