C/C++
zetor_major
苟富贵莫相忘
展开
-
C语言运算符优先级口诀
<br /><br />醋坛酸味灌<br />味落跳福豆<br /><br />共44个运算符<br /><br />醋-初等,4个: ( ) [ ] -> 指向结构体成员 . 结构体成员<br />坛-单目,9个: ! ~ ++ -- -负号 (类型) *指针 &取地址 sizeof长度 (结合方向:自右向左)<br />酸-算术,5个: * / % + -减<br />味-位移,2个: << >><br />灌-关系,6个: < <= > >=== 等于!= 不等于<br />味-原创 2010-06-01 09:01:00 · 490 阅读 · 1 评论 -
指针 复杂的声明
int *( *(*fp1)(int) )[10]; 阅读步骤: 1. 从变量名开始 ---------------------------- fp1 2. 往右看,是“)”,因此往左看,是“*” ------- 一个指针 3. 跳出括号,碰到了(int) ------------ 一个带一个int参数的函数 4. 向左看,发现原创 2009-08-03 21:48:00 · 726 阅读 · 0 评论 -
VC2008程序在别人电脑上运行
VC++2008中Debug模式的文件确实无法在别的电脑上运行,只要把运行模式改成Release,生成的文件就是可以在别的机器上运行的了。 (如下图) 可是,后来却发现有的文件依然无法在别的机器上运行。后来再网上查到好不容易查到两个办法,经我验证确实可行:1、在菜单栏中选择 项目-》工程属性-》配置属性-》在右边选择项目默认值,找到MFC的使用,由“使用标准windows库”转载 2009-08-21 13:36:00 · 458 阅读 · 0 评论 -
Windows与Linux编译器的差异
开始移植 工作后的第一步就是在目标平台Linux上进行编译,并链接源代码。由于需要移植的软件通常并未在Linux平台上编译过,编译的过程可能会遇到很大的困 难。一般情况下,由类型声明引起的编译错误是比较容易修复的。比如Microsoft C/C++的头文件使用__declspec( dllimport/dllexport )来输入和输出DLL函数,在Linux上,把函数声转载 2009-11-03 14:25:00 · 710 阅读 · 0 评论 -
大端小端深入位剖析
大端:高位在低地址。小端:底位在低地址。区别:(举例)1.字节层次。如整数0x12345678在内存中应该如下存放:地低: base | base+1 | base+2 | base+3 | ------------------------------------------------ |大端 | 12 | 34转载 2010-03-03 18:03:00 · 306 阅读 · 0 评论 -
柔性数组
结构体变长的妙用——0个元素的数组有时我们需要产生一个结构体,实现了一种可变长度的结构。如何来实现呢?看这个结构体的定义:typedef struct st_type{ int nCnt; int item[0];}type_a;(有些编译器会报错无法编译可以改成:)typedef struct st_type{ int nCnt; int item[];}type转载 2010-03-03 18:05:00 · 290 阅读 · 0 评论 -
C与C++文件互相调用
时常在cpp的代码之中看到这样的代码:#ifdef __cplusplus extern "C" { #endif//一段代码#ifdef __cplusplus } #endif 这样的代码到底是什么意思呢?首先,__cplusplus是cpp中的自定义宏,那么定义了这个宏的话表示这是一段cpp的代码,也就是说,上面的代码的含义是:如果这是一段转载 2010-03-05 08:53:00 · 412 阅读 · 1 评论 -
回调函数详解
解释1callback这个词本意是打电话对方不在,通过某种方法让那个人在的时候给你打回来。 void f() { ... } 调用这个函数话...和回调没有任何关系。就相当于A:"B,你去干f。" void f(int (*g)()) { ... g(); } 这个函数就带有回调的特征。调用的时候好像 A:"B,你去干f。干好了叫我干g。" 也就是调用方留一个让转载 2010-03-26 11:29:00 · 389 阅读 · 0 评论