
C/C++
未来信使
后进菜鸟,热爱图形学,喜欢游戏编程,正学习游戏开发,立志进入游戏行业!
展开
-
详解C中volatile关键字
<br />转自:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.html<br /> volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,转载 2011-04-07 10:00:00 · 3118 阅读 · 0 评论 -
什么时候才能形成一种好的编程习惯?
一直以来,各种介绍C/C++的书中都告诫我们在条件语句中,判断两个值是否相等时,把常量写在等号的左边,这是一种好的编程习惯。道理比较简单,因为你很可能因为输入错误把“==”写成了“=”,这样条件语句很可能得不到你预期的值,程序也就无法按正常逻辑运行了。比如:if( a == 3 ){ 执行A计划;}else 执行B计划;如果你写成下面这样的:if( a = 3 ){ 执行A计划;}else 执行B计划; 那么你的B计划永远别想执行了。因为条件语句的值原创 2011-04-09 15:26:00 · 3306 阅读 · 0 评论 -
一个与命名空间有关的奇怪错误!
决定近一段时间研究一下Irrlicht引擎,想研究一下它的源码,当然0.1版的是最好的选择了,官网上有下的。编译时,排除了一些错误后,出现了下面的情况。1>------ Rebuild All started: Project: Irrlicht, Configuration: Debug Win32 ------1>Deleting intermediate and output files for project 'Irrlicht', configuration 'Debug|Win32'1>Comp原创 2011-04-10 17:04:00 · 6718 阅读 · 2 评论 -
C/C++位操作符号详解
C/C++位操作符号详解一、位运算:| 按位或操作符:result=exp1|exp2;当exp1和exp2中对应位中至少有一个为1时,result中对应位为1,否则为0。& 按位与操作符::result=exp1&exp2;当exp1和exp2中对应位全为1时,result中对应位为1,否则为0。^ 按位异或或操作符:result=exp1^exp2;当exp1和exp2中对应位不相同时,result中对应位为1,否则为0。~ 按位取反(反转)操作符:将位容器中的所有位都反转原创 2011-04-22 21:18:00 · 8841 阅读 · 0 评论 -
C++中显式和隐式初始化和类型转换
1.显式和隐式初始化 有一个类的构造函数为: A(int i) : m_i(i){} 1.1 C++显式初始化 内置类型: int ival = 1024; string hello = "Hello world." 自定义类型的显式初始化: A abc(200);//显式初始化,直接调用构造函数 A a = A(1);//直接调用构造函数,没有临时对象,作用域结束时析构 A* e = new A(2);//直接调用构造函数,使用delete时析构 A d(*e);//显式初始化,原创 2011-02-25 05:54:00 · 2693 阅读 · 1 评论 -
Windows内存分配(转)
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的原创 2011-01-15 06:15:00 · 3517 阅读 · 0 评论 -
指针与数组复习笔记
关于数组 数组必须先定义,后使用,定义时其长度必须为编译时期可以确定的常数。 只能逐个引用数组元素,不能一次引用整个数组 数组元素表示形式:数组名[下标] 数组不初始化,其元素值为随机数 对static数组元素不赋初值,系统会自动赋以0值 当全部数组元素赋初值时,可不指定数组长度 只给部分数组元素赋初值,后面的会自动填0(int,double,float,char(/0)已测试过) static int a[5]; 等价于:a[0]=0; a[1]=0; a[2]=0; a[3]=0; a原创 2010-11-28 11:03:00 · 1190 阅读 · 0 评论 -
内存管理学习笔记
C++的内存管理 1内存分配方式 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变原创 2010-12-10 00:25:00 · 2430 阅读 · 0 评论 -
C Run-Time Library的理解
C Run-Time Library的理解 *************************************** 1)运行时库就是C run-time library,是C而非C++语言世界的概念:取这个名字就是因为你的C程序运行时需要这些库中的函数. 2)C语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C语言内核开发出来之后,Dennis Ritchie和Brian Kernighan就用C本身重写了90%以上的UNIX系统函数,并且把其原创 2010-12-08 12:41:00 · 557 阅读 · 0 评论