C/C++/Java
fanbird2008
这个作者很懒,什么都没留下…
展开
-
an error not easily discovered
The following code is convert byte to hex.When code is writed like 1, when text[i]'s high nibble byte=F, it will cause htext[i]=0x00, i.e., null. Therefore, it will produce wrong result.原创 2012-02-08 16:04:33 · 460 阅读 · 0 评论 -
VC 2013 Warning Relevant to Codepage Problem Solution
警告 2 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失 D:\webrtc\src\talk\app\webrtc\dtmfsender.cc 1 1 libjingle_peerconnectionSolution:1. click this file for opening it原创 2015-06-25 18:57:22 · 413 阅读 · 0 评论 -
Assembly Intro - Inline Assembly Versus Non-Inline Assembly
From a function viewpoint, function may be implmented by inline assembly way, or by non-inline assembly way.Example:inline assembly functionint inline_add(int x, int y){ asm volatile ("ad原创 2015-07-16 17:11:27 · 470 阅读 · 0 评论 -
Assembly Intro - Intel and AT&T Syntax
Intel and AT&T Syntax.Intel and AT&T syntax Assembly language are very different from each other in appearance, and this will lead to confusion when one first comes across AT&T转载 2015-07-16 15:21:44 · 615 阅读 · 0 评论 -
Inline Assembly Intro - Float Point Register
Because of the way the FPU uses registers as a stack, things are a little different when using floatingpoint values in inline assembly language coding. You must be more careful about how the转载 2015-07-16 14:26:47 · 616 阅读 · 0 评论 -
Inline Assembly Intro - Float Point Register Usage
/* areatest.c - An example of using floating point regs */#include int main(){ int radius = 10; float area; asm(“fild %1\n\t” “fimul %1\n\t” “fldpi\n\t” “fmul %%st(1), %%st(0)” : “转载 2015-07-16 14:42:01 · 515 阅读 · 0 评论 -
Inline Assembly Intro - Register Mismatch
1. As far as following inline assembly#include int main(){ float arg1, arg2, add, sub, mul, div ; printf( "Enter two numbers : " ); scanf( "%f%f", &arg1, &arg2 ); /* Perform原创 2015-07-15 17:52:29 · 719 阅读 · 0 评论 -
Inline Assembly - GCD
int gcd(int a, int b){ int result ; asm volatile ( "movl %1, %%eax;" "movl %2, %%ebx;" "CONTD: cmpl $0, %%ebx;" "je DONE;" "xorl %%edx, %%edx;" "idivl %%ebx;"转载 2015-07-14 13:59:15 · 532 阅读 · 0 评论 -
Inline Assemble Code - A problem relevant to register usage
1. Source code as followings#include int main(){ int arg1, arg2, add, sub, mul, quo, rem ; printf( "Enter two integer numbers : " ); scanf( "%d%d", &arg1, &arg2 ); __asm__ (原创 2015-07-14 13:42:57 · 489 阅读 · 0 评论 -
Nasm Intro - The Three Kinds of Operands & Conditional Instructions
http://cs.lmu.edu/~ray/notes/nasmtutorial/Register OperandsIn this tutorial we only care about the integer registers and the xmm registers. You should already know what the registers are,转载 2015-07-20 17:56:25 · 478 阅读 · 0 评论 -
Nasm Intro - Multi-Line Macros
http://www.tortall.net/projects/yasm/manual/html/nasm-multi-line-macros.htmlMulti-line macros are much more like the type of macro seen in MASM and TASM: a multi-line macro definition in NASM lo转载 2015-07-21 09:33:19 · 628 阅读 · 0 评论 -
C++11 Intro - C++11智能指针之unique_ptr
http://blog.csdn.net/rsljdkt/article/details/122232531. 智能指针概念智能指针是基于RAII机制实现的类(模板),具有指针的行为(重载了operator*与operator->操作符),可以“智能”地销毁其所指对象。C++11中有unique_ptr、shared_ptr与weak_ptr等智能指针,转载 2017-04-28 18:12:32 · 353 阅读 · 0 评论 -
C++11 Intro - C++11智能指针之shared_ptr、weak_ptr
1. shared_ptr、weak_ptr概念shared_ptr与weak_ptr智能指针均是C++ RAII的一种应用,可用于动态资源管理shared_ptr基于“引用计数”模型实现,多个shared_ptr可指向同一个动态对象,并维护了一个共享的引用计数器,记录了引用同一对象的shared_ptr实例的数量。当最后一个指向动态对象的shared_ptr销毁时,会自动销毁其所指对象(转载 2017-04-28 18:05:29 · 365 阅读 · 0 评论 -
C C++ Intro - Address Substract
float *r0 = 0x078c2ca0, *r1 = 0x078c2z60;int block_size_ = r1 - r0;block_size = 144; // r1 - r0 = 0x240// = 576// block_size = 576 / 4 = 144原创 2015-11-19 14:01:23 · 466 阅读 · 0 评论 -
Fixed Float Format Intro - Q format
https://en.wikipedia.org/wiki/Rational_numberQ (number format)From Wikipedia, the free encyclopediaJump to: navigation, search This article needs additi转载 2015-11-22 12:21:04 · 1514 阅读 · 0 评论 -
C Intro - Two unsigned int subtract
#include #include int main(){ uint16_t t1 = 0, t2 = 0xFFFF, result; int16_t res; res = t1 - t2; // printf("0x%X\n", result); printf("%d\n", (int16_t)t2); // output -1 pr原创 2015-08-25 16:49:28 · 415 阅读 · 0 评论 -
GCC Intro - Compile 32-bit Application on 64-bit ubuntu
gcc -m32 -o tat.x tat.c atom1.o原创 2015-09-07 17:21:12 · 674 阅读 · 0 评论 -
C C++ Intro - C语言中函数参数入栈的顺序
C语言中函数参数入栈的顺序先通过一个小程序来看一看: #include void foo(int x, int y, int z) { printf("x = %d at [%X]n", x, &x); printf("y = %d at [%X]n", y, &y); printf("z = %d at [%X]n", z, &z); } int转载 2015-09-07 18:00:42 · 880 阅读 · 0 评论 -
Winsock2 Intro - select mode
http://www.winsocketdotnetworkprogramming.com/winsock2programming/winsock2advancediomethod5a.htmlWinsock 2 I/O Methods 5Part 2 What do we have in this chapter 5 part 2?The select(转载 2015-07-23 11:14:26 · 525 阅读 · 0 评论 -
C++ - C++0x/C++11 Support in GCC
C++0x was the working name of the ISO C++ 2011 standard, which introduced a host of new features into the standard C++ language and library. This project sought to implement new C++11 features in GCC,转载 2015-06-16 09:58:37 · 1719 阅读 · 0 评论 -
VS2013 配置全局 VC++ 目录
1. 随便打开一个项目,然后点击菜单中的 视图->其他窗口->属性管理器2. 打开属性管理器,点击项目前的箭头,展开项目,找到debug或者release下面的Microsoft.Cpp.Win32.user这个属性,3. 双击会出现一个跟在项目上右键属性一样的窗口,修改里面的“VC++目录”就是修改了全局的,原创 2015-05-04 12:46:13 · 11456 阅读 · 0 评论 -
nasm x86 assembly quick reference
nasm x86 Assembly Quick Reference ("Cheat Sheet")InstructionsMnemonicPurposeExamplesmovdest,srcMove data between registers, load immediate data into registers, move data转载 2013-07-02 11:50:06 · 758 阅读 · 0 评论 -
Intel X86 assembly language reference
Jump Meaning Signedness (S or U)------------------------------------------------------------ja | Jump if above | Ujae | Jump if above or Equal | Ujb | Jump if below | Ujbe | Jump if below转载 2013-07-02 13:41:54 · 1034 阅读 · 0 评论 -
g++ compile error for goto
#include int main(int argc, char **argv) { int n =0; goto _OUT; int *p = NULL; n = 5;_OUT: return 0;}g++ will report errors:error: jump to label ‘_OUT’ [-原创 2013-04-12 11:45:25 · 776 阅读 · 0 评论 -
C call C++
C中如何调用C++函数? 前阵子被问及一个在C中如何调用C++函数的问题,当时简单回答是将函数用extern "C"声明,当被问及如何将类内成员函数声明时,一时语塞,后来网上查了下,网上有一翻译C++之父的文章可以作为解答,遂拿来Mark一下。 将 C++ 函数声明为``extern "C"''(在你的 C++ 代码里做这个声明),然后调用它(在你的 C 或者 C++ 代码里调用)转载 2013-04-11 11:33:23 · 1378 阅读 · 0 评论 -
J2EE J2SE J2ME JDK SDK JRE JVM
J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别一、J2EE、J2SE、J2ME区别J2EE——全称Java 2 Enterprise Edition,是Java的一种企业版,用于企业级应用开发。J2SE——全称Java 2 Standard Edition,是Java的标准版,用于标准应用开发,也是Java基础版本。J2ME——全称Java 2 Micro转载 2012-12-18 16:04:44 · 769 阅读 · 0 评论 -
C and C++ call
1. c++ call c function#ifdef __cplusplusextern "C"{#endifvoid fun1(int n);void fun2(int n);#ifdef __cplusplus}#endif原创 2012-12-17 15:30:35 · 511 阅读 · 0 评论 -
如何阅读复杂的C定义/声明
翻译自:How To Read C Declarations 英文原文p.s. 以前还真没注意到这篇文章最后提到的vtable是啥意思……就算是非常有经验的C程序员,也对那些比简单数组/指针更复杂一些的声明感到头疼。比如说,下面这个是一个指针的数组,还是一个数组的指针?int *a[10];下面这货到底是什么?int (*(*vtable)[])();当然了,这转载 2012-05-17 10:17:25 · 453 阅读 · 0 评论 -
C++ Singleton Class
file tt1.cpp #include #include using namespace std;class AvPlayer {public: static AvPlayer &Instance() { static AvPlayer avPlayer; return avPlayer; }原创 2014-09-04 16:55:53 · 592 阅读 · 0 评论 -
C++ Template Instantiate Sample
#include using namespace std;template inline T square(T x){ T result; result = x * x; return result;};// template specializationtemplate string square(string s){ retu原创 2014-09-10 11:57:31 · 1234 阅读 · 0 评论 -
C++ Template Class Derived
struct ANativeWindow_Buffer;namespace android {/* * An implementation of ANativeWindow that feeds graphics buffers into a * BufferQueue. * * This is typically used by programs that want to转载 2014-09-10 12:18:31 · 1316 阅读 · 0 评论 -
Smart Pointer
template class SmartPtr{public: explicit SmartPtr(T* pointee) : pointee_(pointee); SmartPtr& operator=(const SmartPtr& other); ~SmartPtr(); T& operator*() const { ... retu转载 2014-01-13 11:06:44 · 599 阅读 · 0 评论 -
C++ Type Casting
C++的四个类型转换运算符已经有很久了,但一直没有弄清楚它们的用法,今天看到一本书上的解释,才大致地的了解了其具体的用法.具体归纳如下:reinterpret_cast该函数将一个类型的指针转换为另一个类型的指针.这种转换不用修改指针变量值存放格式(不改变指针变量值),只需在编译时重新解释指针的类型就可做到.reinterpret_cast 可以将指针值转换为一个整型数转载 2013-11-21 17:48:02 · 662 阅读 · 0 评论 -
虚函数、纯虚函数、虚基类、抽象类、虚函数继承、虚继承
虚函数、纯虚函数、虚基类、抽象类、虚函数继承、虚继承虚函数:虚函数是C++中用于实现多态(polymorphism)的机制。核心理念就是通过基类访问派生类定义的函数。是C++中多态性的一个重要体现,利用基类指针访问派生类中的成员 函数,这种情况下使用虚函数,这种情况下采用的是动态绑定技术。 虚函数必须是基类的非静态成员函数,其访问权限转载 2013-11-21 17:07:29 · 883 阅读 · 0 评论 -
String Class
已知类String的原型为:class String{public: String(const char *str = NULL);// 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & operate =(原创 2013-11-21 14:52:35 · 859 阅读 · 0 评论 -
C++内部类
内部类其实就是一种在类声明里面定义的一种局部数据类型。 ---- 内部类的声明有public和private之分如果声明为public,那么外面也可以用它来定义变量,比如Outer::Inner var如果声明为private,那么外面不能用来定义变量,那么Outer::Inner var将会导致编译错误。 ---- 内部类声明完之后就可以用来定义变量这就和别的数据类型转载 2013-11-21 11:48:39 · 806 阅读 · 0 评论