(1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。(2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行类型检查。(3) 存储方式不同 define宏仅仅是展开,有多少地方使用, ...
分类:
编程语言 时间:
2016-08-07 16:59:16
阅读次数:
132
1.
4 const和#define的区别
对比加深
C++ 中的const 常量类似于宏定义
const int c = 5; ≈ #define c 5
C++ 中的const 常量与宏定义不同
const常量是由编译器处理的,提供类型检查和作用域检查
宏定义由预处理器处理,单纯的文本替换2.
C语言中的const 变量
C语言中 const变量是只读变量,有自己的存储空间...
分类:
编程语言 时间:
2016-07-15 21:29:33
阅读次数:
243
java泛型(generic) 2016-07-11 问题 未使用泛型举例: 说明:任何Object子类均可以存入Object集合,但是从集合中获取元素,则是Object对象,需要强制转换,可能抛异常。 意义 使用泛型能够限定集合中存放的元素类型,标记集合中的元素类型,对存入集合的元素进行类型检查, ...
分类:
编程语言 时间:
2016-07-11 07:51:11
阅读次数:
208
Swift正在完成一个惊人的壮举,它正在改变我们在苹果设备上编程的方式,引入了很多现代范例,例如:函数式编程和相比于OC这种纯面向对象语言更丰富的类型检查。 Swift语言希望通过采用安全的编程模式去帮助开发者避免bug。然而这也会不可避免的产生一些人造的陷阱,他们会在编译器不报错的情况下引入一些B ...
分类:
编程语言 时间:
2016-07-09 17:53:08
阅读次数:
288
最近开始频繁接触H5,同事说脚本语言大多都是弱类型语言。看了下下弱类型语言和强类型语言的东西。 动态语言和静态语言。1 动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据 ...
分类:
编程语言 时间:
2016-07-08 11:43:50
阅读次数:
128
C++注重类型,强类型,严格检查类型 C类型检查不明确 //在C可以编译,在C++无法编译 //1>main.cpp(10): error C2440: “=”: 无法从“double *”转换为“int *” //1> main.cpp(10): note: 与指向的类型无关;转换要求 reint ...
分类:
编程语言 时间:
2016-07-05 06:22:51
阅读次数:
223
1. 发散性问题:C++中的几种交换变量的方法 (1)宏代码块 VS 函数 【编程实验】变量的交换 (2)优缺点比较 宏义宏代码块 定义函数 优点 代码复用,适合所有类型 真正的函数调用,编译器对类型进行检查 缺点 编译器不知道宏的存在,缺少类型检查 根据类型重复定义函数,无法代码复用 宏义宏代码块 ...
分类:
其他好文 时间:
2016-06-25 23:02:19
阅读次数:
245
C++类型检查更加严格 c语言中,当字符当做函数参数传入是,都把字符当整型int使用,sizeof('c') = sizeof(int); 更进一步,c编译器把字符常量等同于整数常量处理: putchar(10) 同 putchar('\n') 等效。 但是,C++中, sizeof('c') == ...
分类:
编程语言 时间:
2016-06-22 09:14:04
阅读次数:
172
const与#define的比较1、const常量有数据类型,而宏常量没有数据类型。编译器可以对const进行类型检查。对宏常量只是字符替换,并会产生意料不到的错误。2、有些集成化的调试工具可以对const常量进行调试,但不能对宏常量进行调试。类内需要恒常量时用枚举类型。如果输入参数以..
分类:
编程语言 时间:
2016-06-17 01:02:58
阅读次数:
235
/* 如果让实现一个比大小的函数,而被比大小的数据环境又比较复杂, 如各种换类型,该用何种方案解决? 1、宏定义 2、函数重载 3、函数模板 其中,第一种、绕过了类型检查机制。第二种、需要写诸多函数。 只有第三种较简单*/#include using namespace std;template T... ...
分类:
其他好文 时间:
2016-06-14 08:52:40
阅读次数:
183