
C /C++
文章平均质量分 58
面包会有的
我答应她,面包会有的
展开
-
C++编译预处理
导语 在编译器对源程序进行编译之前,首先要由预处理器对程序文本进行预处理。预处理器提供一组编译预处理指令和预处理操作符。预处理指令实际上不是C++语言的一部分,它是用来扩充C++程序设计的环境。所有的预处理指令在程序中都是以“#”来引导,每一条预处理指令单独占一行,不要用分号结束。预处理指令可以根据需要出现在程序中的任何位置。一:预处理指令1.1 #include文件包含指令,作用是将另一个源原创 2016-11-10 15:09:39 · 514 阅读 · 0 评论 -
C++表达式的执行原理
C++表达式的执行原理通过下面一个简单的例子来说明C++表达式的执行过程int a,b,c,d;int main(){ a=4; b=2; c=3; d=(a+b)*c; retuen 0;}下面分别分析各行代码的目标代码的反汇编结果。先看a=4到c=3这三条语句,他们的反汇编结果为:mov1 $0x4,0x80495d8 //对应"a=4",将32位整原创 2017-07-26 14:48:45 · 1249 阅读 · 0 评论 -
C++初级知识点1
C++初级知识点1C++语言概述1.1 C++的产生 C++是从C语言发展演变而来的,C语言最初是贝尔实验室的Dennis Ritchie在B语言基础上开发出来的。1972年在一台DEC PDP-11计算机上实现了最初的C语言,以后经过了多次改进。目前比较流行的C语言基本上都是ANSI C为基础的优点,例如:语言简介灵活,运算符和数据结构丰富,具有结构化控制语句,程序执行效率高,而且同时具有高级原创 2017-07-26 13:48:50 · 300 阅读 · 0 评论 -
C++枚举类型
C++枚举类型一场比赛的结果又胜,负,平,比赛取消这四种情况;一个星期只有星期一,星期二,……,星期日7天。上述数据只有有限的几种可能,虽然可以用int,char等类型表示他们,但是对数据的合法性检查却是一件很麻烦的事情,例如如果用整数0–6代表一星期的7天,那么变量值8便是不合法数据。C++的枚举类型就是专门用来解决这类问题的。 声明形式enum 枚举类型名 {变量值列表};例如enum Wee原创 2017-07-27 09:50:31 · 481 阅读 · 0 评论 -
C++变量的实现与机制
在C++源程序中,之所以要使用变量名,是为了把不同的变量区别开。在运行程序时,C++变量的值都存储在内存中,内存的每个单元都有一个唯一的编号,这个编号就是他的地址。不同的内存单元的地址互不相同,因此不同名称的变量在运行时占据的内存单元具有不相同的地址,C++的目标代码就是靠地址来区别不同的变量。int a=1,b=2;int main(){ a++; b++; retur原创 2017-07-27 13:53:33 · 438 阅读 · 0 评论 -
C++运行栈与函数调用的执行
全局变量在目标代码总都是用一个唯一确定的地址定位的,然而,对于局部变量却不能如此,这是因为如下原因:局部变量只在调用他所在的函数时才会生效,一旦函数返回后就会失效。很多局部变量的生存周期源小于整个程序的运行周期,如果为每个局部变量分配不同的空间,则空间利用率会降低。更重要的是,当发生递归调用时,会存在当一个函数尚未返回,对他的另一次调用又发生的情况,对于这种多次调用,相同名称的局部变量会有不同的原创 2017-07-27 15:01:06 · 481 阅读 · 0 评论 -
C++ rapidxml的使用
解析步骤1 读取xml文件内容 以文件流的方式读取xml文件到char型数组中char* ReadFiel(const char* fileName){ FILE* file = fopen(fileName,"rb"); if (file==0) { return 0; } fseek(file,0,SEEK_END); si原创 2017-08-23 15:09:30 · 660 阅读 · 0 评论 -
C++指针和引用
相同点指针:指向一块内存,他的值是指向内存的地址。 引用:某块内存的别名。 都是地址的概念不同点1. 指针是一个实体,而引用仅是个别名; 2. 引用使用时无需解引用(*),指针需要解引用; 3. 引用只能在定义时被初始化一次,之后不可变;指针可变;引用“从一而终”; 4. 引用没有 const,指针有 const,const 的指针不可变; 5. 引用不能为空,指针可以为原创 2017-08-31 14:33:52 · 275 阅读 · 0 评论 -
MFC自定义消息
使用过程消息传递过程中参与的对象 1. 消息响应窗体A 2. 消息发送窗体B 消息传递过程: 1. 自定义消息ID,用户自定义消息通常定义在WM_USER(0x0400)至0x7FFF范围内。#define WM_TASK_UPDATE WM_USER + 1232. 在窗体A中声明定义消息响应函数,该函数的类型必须是固定的:afx_msg LRESULT (CWnd::*)(WPARAM,原创 2017-09-03 15:02:35 · 478 阅读 · 0 评论