C/C++
文章平均质量分 58
NewJerryj
这个作者很懒,什么都没留下…
展开
-
C语言编译全过程
编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等)1. 编译预处理转载 2009-07-31 18:53:00 · 919 阅读 · 0 评论 -
在宏定义中使用可变参数
实际项目中,我们为了方便,经常会使用宏定义函数, 这样方便调用且简洁直观。 这里介绍可变参数在宏定义中的使用方法: object c的代码示例如下,#define Spide(str,...) \ { \原创 2012-11-09 09:00:17 · 1750 阅读 · 0 评论 -
C++入门进阶之6: 多态性
1. 多态是指同样的消息被不同类型的对象接收时导致不同的行为,消息是指对类的成员函数的调用。2. 多态的类型: 重载多态,强制多态,包含多态和参数多态。3.多态的实现: 分为编译时的多态和运行时的多态4. 运算符重载:对已有的运算符赋予多重含义,使得同一个运算符作用于不同类型数据时,导致不同的行为。5. 运算符重载的规则: a. 除了少数几个外,其他原创 2012-09-26 00:06:12 · 1019 阅读 · 0 评论 -
C++入门进阶之5: 继承与派生
1. 一个派生类可以同时拥有多个基类,这种情况被称为多继承。2. 派生类成员是指除了从基类继承来的成员之外,新增加的数据和函数成员。3. 派生类的生成过程:a. 吸收基类成员 b. 改造基类成员 c. 添加新成员4. 在派生过程中,基类的构造函数和析构函数是不能被继承的。5. 公有继承: 当类的继承方式为公有时,基类的公有和保护成员的访问属性在原创 2012-09-23 22:25:52 · 1027 阅读 · 0 评论 -
C++入门进阶之4: C++程序结构
1. C++对象的生存期: 静态生存期:在文件作用域范围内声明或者在函数体里使用static声明的对象具有静态生存期2. 类的静态成员: 静态数据成员: 采用static声明的静态成员, 静态成员在每个类中只有一个拷贝,由该类的所有对象共同拥有和维护,从而可以实现不同对象之间的数据共享。 访问方法: 类名::原创 2012-09-20 00:34:37 · 1409 阅读 · 0 评论 -
C++入门进阶之3: 类和对象
1. 面向对象的四个主要特征: 抽象, 封装, 继承,多态2. 与普通的函数不同, 类的成员函数需要在实现的时候使用类名来限制,例如: void Car: getPrice() { //...... }原创 2012-09-17 01:55:37 · 1262 阅读 · 1 评论 -
C++入门进阶之2: 函数
1. 函数在没有被调用时是静止的,此时的形参只是一个符号。 函数在被调用时才执行,也是在被调用时,才由主调函数将实参赋给形参。2. 函数调用执行过程: 当程序被启动时,首先从外部存储器将代码加载到内存的代码区, 然后从入口地址(main函数的起始地址)开始执行。 程序在执行过程中,如果遇到调用其他函数,则先暂停当前函数的执行,保存下一条指令的地址作为返回地址,并保存现场, 然后原创 2012-09-15 23:20:12 · 922 阅读 · 0 评论 -
C++入门进阶之一: 基础知识介绍
1. C++是1980年由贝尔实验室的Bjarne Stroustrup博士创立的语言2. C++语言最大的两个特点: 全面兼容C语言, 面对对象的特性3. 支持所有的C语言数据类型, 但是C++的编译器具有更加严格的类型检查4. 结构体的定义方法示例 struct Test { int num;原创 2012-09-15 01:47:49 · 898 阅读 · 0 评论 -
C++强大的背后
转自:http://www.cnblogs.com/miloyip/archive/2010/09/17/1828449.html在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup,该门语言则命名为——C with classes,四年后改称为C++。C++是一门通用编程语言,支持多种编程范式,包括转载 2012-09-01 16:53:18 · 1054 阅读 · 0 评论 -
设计模式与架构设计的资料收藏
1. C++与设计模式http://www.cppblog.com/mzty/原创 2012-08-31 00:30:08 · 869 阅读 · 0 评论 -
volatile关键字
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:int volatile nVint; 当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据转载 2012-08-31 00:12:23 · 562 阅读 · 0 评论 -
获取字符串的unicode编码
<br /> 平时我们在开发移动终端应用程序的时候,经常需要把字符串资源转化为unicode编码。 本文来介绍一个较为简单的方法,将整个字符串的unicode编码转化出来。 方便演示代码,只是写了个控制台的程序,大家需要的话,可以根据下面的方法,写个MFC的应用程序。<br /> <br /> 具体的代码如下:<br />//////////////////////////////////////////////////////////////////////////// Function原创 2011-04-05 11:44:00 · 6408 阅读 · 1 评论 -
C++ 类中的静态成员
相关规则:1、静态函数不能调用类的成员变量和成员函数;2、成员函数可以调用静态变量和静态函数;3、静态变量和静态函数不属于类的任何具体对象(没有this指针),但是可被类的所有对象共享。4、类的静态变量和静态函数不能被其派生类继承;5、静态变量必须初始化后才能被调用(无论是成员函数还是静态函数调用);===========================转载 2010-01-27 21:02:00 · 1357 阅读 · 0 评论 -
c语言中volatile关键字
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改。用volatile关键字声明的变量i每一次被访问时,执行部件都会从i相应的内存单元中取出i的值。没有用volatile关键字声明的变量i在被访问的时候可能直接从cpu的寄存器中取值(因为之前i被访问过,也就是说之前就从内存中取出i的值保存到某个寄存器中),之所以直接从寄存转载 2009-09-30 16:40:00 · 951 阅读 · 0 评论 -
一个C程序的内存布局(memory layout)
一个C程序的内存布局(memory layout)2009-09-09 15:19一个C程序一直以来都是由以下5个段(pieces)组成:代码段(text segment):存放CPU执行的机器指令(machine instructions)。通常情况下,代码段是可共享的,使其可共享的目的是对于频繁被执行的程序,只需要在内存中有一份拷贝即可,比如文本编辑器(text转载 2009-09-25 11:03:00 · 1121 阅读 · 0 评论 -
数据区,代码区,堆栈区,操作系统堆栈
堆和栈的区别一、预备知识—程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵转载 2009-09-09 08:32:00 · 2540 阅读 · 1 评论 -
使用C的库函数获取当前本地时间
1. tm结构体struct tm {inttm_sec; /* seconds after the minute [0-60] */int tm_min;/* minutes after the hour [0-59] */int tm_hour;/* hours since midnight [0-23] */int tm_mday;/* day of th原创 2012-12-12 15:48:28 · 1474 阅读 · 0 评论