LFMY

导航

2014年3月27日 #

类型提升

摘要: 类型提升规则:1、首先,如果一个操作书的类型是long double,那么另一个操作数也被转化为long double。其次,如果一个操作数的类型是double,那么另一个操作数也被转换为double。再次,如果其中一个操作数的类型是float,那么 另一个操作数也被转换为float。否则,两个操作数进行整型提升,执行下面的规则:2、如果其中一个操作数是unsigned long int,那么另一个操作数也被转换为unsigned long int。其次,如果其中一个操作数是long int, 而另一个操作数的类型是unsigned int ,如果long int 能够完整表示unsigned 阅读全文

posted @ 2014-03-27 10:17 LFMY 阅读(374) 评论(0) 推荐(0)

2014年3月26日 #

字节序

摘要: 一、字节序内存分布图小端主机上小端LE:低位(数据)单元存放在低位(存储)单元,如Windows、Linux、x86的CPU;大端BE:低位(数据)单元存放在高位(存储)单元,如IOS、PowerPC处理器; 1 int main() 2 { 3 struct A 4 { 5 unsigned int uiData; 6 unsigned short usData[2]; 7 unsigned char ucData[4]; 8 }; 9 struct A a = {0x01020304, {0x0102, 0x... 阅读全文

posted @ 2014-03-26 10:30 LFMY 阅读(218) 评论(0) 推荐(0)

2014年3月24日 #

结构体位制

摘要: 一、使用: 优点——节省空间; 缺点——受大小端的限制,特别注意(建议用位运算取代之)。二、注意三点:1、只有unsigned型和int型(VC上long、short也没报错,???);2、unsigned :0;//定义长度为0的位段时:(1)不能指定名字,否则编译不过(2)下一个位段从新的单元开始;3、每个位段不能超过一个位单元的大小,否则编译过不去。三、实例1 struct A{//自身的对齐值为unsigned 4B2 long a:3;3 int b:23;//26bit,3B4 unsigned c:6;5 ... 阅读全文

posted @ 2014-03-24 11:09 LFMY 阅读(486) 评论(0) 推荐(0)

2014年3月22日 #

字节对齐

摘要: 推荐两篇极好的文章:第一篇(搜索关键字:C语言字节对齐)CSDN参考文章第二篇(搜索关键字:#pragma pack(n) 的作用)微软面试题总结的关键点如下:对数据成员、联合体、结构体和类来说,有几个重要概念:1.自身对齐值: 对于char型数据,其自身对齐值为1,对于short型为2,对于int,float,double类型,其自身对齐值为4,单位字节。2.指定对齐值: #pragma pack (value)时的指定对齐值value。3.有效对齐值: 自身对齐值和指定对齐值中小的那个值。无论对结构体,还是类来讲,其内部成员都是按照“定义的先后顺序”和“各个成员自身的有效对齐值”来对... 阅读全文

posted @ 2014-03-22 09:49 LFMY 阅读(199) 评论(0) 推荐(0)

2014年3月21日 #

多维数组的理解(可能导致“致命错误”)

摘要: /**C语言中只有“数组的数组”,即“一维数组”,并称为“多维数组”。*/以char szArr[][4][3];为例该多维数组应该这样理解:(1)一维数组szArr[]的单元为一个char[4][3]的二维数组;(同理,szArr[][4]的单元为一个char[3]的一维数组)(2)当“数组名单独”出现的时候,“编译器”将其解释为“指向该‘一维数组’第一个元素”的“指针”;(所以,有时候我们会以为szArr[]的单元是一个二维指针,但可惜,事实并非如此)(3)在函数传参的时候,数组名被“编译器”解释为“指向该‘一维数组’第一个元素”的“指针”;(4)牢记一点:指针和数组名存在根本的不同。常见 阅读全文

posted @ 2014-03-21 10:58 LFMY 阅读(277) 评论(0) 推荐(0)

2014年2月22日 #

回调函数

摘要: 函数类型WINAPI宏展开就是_stdcall.函数类型定义typedef int (WINAPI * FALLBACK)(int Prama1, int Prama2);函数原型定义int WINAPI Func(int Prama1, int Prama2);初始化FALLBACK fallback = 0;赋值fallback = Func;函数调用:方式一,(*fallback)(1, 2);方式二,HANDLEhThread=CreateThread(NULL, NULL, Thread1, LPVOID(0), &ThreadID); 阅读全文

posted @ 2014-02-22 15:26 LFMY 阅读(137) 评论(0) 推荐(0)

2014年2月7日 #

Windows命令

摘要: findstr 字符串查询命令(文件的名或内容)百度一下:window中findstr命令的用法 阅读全文

posted @ 2014-02-07 19:25 LFMY 阅读(129) 评论(0) 推荐(0)