基本上使用预处理指令#define的地方都可以使用const,enum或者inline来替换掉它。主要的原因有两个:
#define ASPECT_RATIO 1.653
1.预处理指令是在编译前就进行预处理的(gcc -E进行预处理,它的输出文件作为gcc -S进行编译的输入),所以编译器是看不到#define定义的符号ASPECT_RATIO ,故它不会出现在符号表中,这样如果编译期间出现...
分类:
编程语言 时间:
2015-05-21 17:27:24
阅读次数:
148
C90及C++的数组对象定义是静态联编的,在编译期就必须给定对象的完整信息。但在程序设计过程中,我们常常遇到需要根据上下文环境来定义数组的情况,在运行期才能确知数组的长度。对于这种情况,C90及C++没有什么很好的办法去解决(STL的方法除外),只能在堆中创建一个内存映像与需求数组一样的替代品,这种...
分类:
编程语言 时间:
2015-05-21 10:42:01
阅读次数:
191
/**
* 书本:《Thinking In Java》
* 功能:由于有了擦除,数组运行的时候类型就只能是Object[]。如果我们立即将其转型为T[],那么在编译期该数组的实际类型就将会丢失,
* 而编译器可能会错过某些潜在的错误检查。所以我们最好在集合内部使用Object[],然后当你使用数组元素的时,添加一个对T的转型。
* 文件:GenericArray2.java
* 时间:2015年4...
分类:
编程语言 时间:
2015-05-18 08:58:41
阅读次数:
126
调试和错误处理·错误类型:在编译期间和运行期间,致命错误(语法错误)都会使应用程序完全失败,语义错误或逻辑错误比较微妙,可能会使应用程序执行不正确,或者以未预料的方式执行;输出调试信息:我们在编写代码,把有帮助的信息输出到output窗口中,以帮助在IDE中进行调试..
一、概述
1、Throwable接口
1)Error 类
2)Exception 类
编译期问题:
不是 RuntimeException 的异常
必须进行处理的,因为你不处理,编译就不能通过。
运行期问题:
RuntimeException 异常
这种问题我们也不处理,因为是你的问题,而且这个问题出现肯定是我们的代码不够严谨,需要修正代码的。
二、异常的处理:
(一)异常的处理方式
1、JVM的默认处理:报错。
把异常的名称,原因,位置等信息输出在控制台,程序不能继续执行了。
2、自己处理
1)方式1:...
分类:
编程语言 时间:
2015-05-13 21:59:00
阅读次数:
221
Xref是一个交叉引用工具,通过分析定义的函数间的调用关系,用于查找函数、模块、应用程序和版本之间的依赖关系。通俗而言,Xref 可以检查代码中函数的调用关系。比如在 moduleA 中的 funA 调用了moduleB 中的funB, 但是moduleB 中并未定义funB,此错误在代码编译期间不...
分类:
其他好文 时间:
2015-05-12 20:42:54
阅读次数:
151
1.sizeof和strlen的区别①sizeof是算符,在编译期间计算;strlen是函数,在运行期间计算。②strlen只能用char*做参数,且必须是以’\0‘结尾的,计算结果不包括’\0‘。③数组作为strlen的参数时,退化为指针;数组作为sizeof的参数时不退化。④sizeof计算对象...
分类:
其他好文 时间:
2015-05-12 11:12:46
阅读次数:
84
一、JAVA是动态语言吗?一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言。但JAVA它却有着一个非常突出的动态相关机制:反射。通过反射,Java可以于运行时加载、探知和使用编译期间完全求和的类、生成其对象实体,调用其方法或者对...
分类:
编程语言 时间:
2015-05-09 18:47:45
阅读次数:
121
简介C++0x中引入了static_assert这个关键字,用来做编译期间的断言,因此叫做静态断言。其语法很简单:static_assert(常量表达式,提示字符串)。如果第一个参数常量表达式的值为真(true或者非零值),那么static_assert不做任何事情,就像它不存在一样,否则会产生一条...
分类:
编程语言 时间:
2015-05-09 14:57:32
阅读次数:
178
1.概述 模版元编程(template metaprogram)是C++中最复杂也是威力最强大的编程范式,它是一种可以创建和操纵程序的程序。模版元编程完全不同于普通的运行期程序,它很独特,因为模版元程序的执行完全是在编译期,并且模版元程序操纵的数据不能是运行时变量,只能是编译期常量,不可修改,另外....
分类:
编程语言 时间:
2015-05-05 23:24:54
阅读次数:
161