C++ 宏定义与常量】的更多相关文章

原文: http://blog.csdn.net/t894690230/article/details/50605021 前言:突然想起很久之前上课时被问及C++ 宏定义与常量的区别,仔细了想了想,并没有答起(尴尬),这次就简单总结一下C++宏常量与常量的区别吧. 1. 宏定义 宏定义是C语言提供的三种预处理中的一种,又称为宏代换.宏替换,简称“宏”,用#define定义,如下: #define Pi 3.1415926 1 1 宏常量没有类型,它是在编译前即预编译阶段进行字符替换,就好比如下的…
他们有共同的好处就是"一改全改,避免输入错误"哪两者有不同之处吗?有的. 主要区别就在于,宏定义是在编译之前进行的,而const是在编译阶段处理的 宏定义不占用内存单元而const定义的常量占用内存单元 宏定义与const常量有着相同的作用-----用一个符号表示数据,但是,有些书上说定义数组常量不能用const,经过测试也是可以的,环境是vs2015 常量定义定义数组的长度 const int N=66; int arr[N]; 有的书上说是错误的,但经过我在vs2015上测试是可以…
在使用常量的时候,我看到主要有两种写法: #define RKLICURegexEnumerationOptionsErrorKey @"RKLICURegexEnumerationOptionsErrorKey" extern NSString * const RKLICURegexEnumerationOptionsErrorKey; 这两种写法孰优孰劣?或者在哪些情况下该用那种写法? 看了一下stackoverflow的几个答案: http://stackoverflow.com…
转: c语言中数字后面带个U是什么意思?#define F_CPU 12000000U答:U表示该常数用无符号整型方式存储,相当于unsigned int;L表示该常数用长整型方式存储,相当于longF表示该常数用浮点方式存储,相当于float…
最近开始准备一边做实验室的研究,一边记录一些遇到的编程中的小知识点.今天在测试对矩阵进行SVD分解时,需要定义矩阵的行和列的大小,我习惯性的用宏定义来定义了这两个变量,在运行的时候,就开始思考宏定义和常量之间有些什么样的分别. 参考了一些别人的说法,自己在这里做一个小小的总结. 类型和安全检查不同 宏定义是字符替换,没有数据类型的区别,同时这种替换没有类型安全检查,可能产生边际效应等错误: const常量是常量的声明,有类型区别,需要在编译阶段进行类型检查 编译器处理不同 宏定义是一个“编译时”…
宏定义与常量的区别 宏:只是在预处理器里进行文本替换,不做任何类型检查,宏能定义代码,const不能,多个宏编译时间相对较长,影响开发效率,调试过慢,const只会编译一次,缩短编译时间. 所以在使用的时候,最好把代码和一些基本数据类型如int抽成宏. 而对于常量字符串使用const,苹果也是这样使用的. 下面总结一下一些常用的宏定义. 1.获取主屏幕和屏幕宽度与高度 OC #define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width…
1.C语言中的宏定义 #define是预处理器处理的单元实体之— #define定义的宏可以出现在程序的任意位置 #define定义之后的代码都可以使用这个宏 2.定义宏常量 #define定义的宏常量可以直接使用 #define定义的宏常量本质为字面量 下面的宏常量定义正确吗? #define ERROR -1       #define PATHl "D:\test\test.c"       #define PATH2 D:\test\test.c       #define P…
C++中有两种定义常量的方式:#define预处理和const关键字 #define 预处理指令 #include <iostream> using namespace std; #define LENGTH 10 #define WIDTH 5 #define NEWLINE '\n' int main() { int area; area = LENGTH * WIDTH; cout << area; cout << NEWLINE; ; } const 前缀声明指…
const   const 是c++中的修饰符.  c++中常用来定义常量,修饰左值. #define 宏定义语句, 在预处理阶段直接做文本替换,不做类型检查. 它们之间的最大区别: 1.  对于const 变量,系统只给了一个相应的内存地址,而#define则是给出了一个立即数.因为const变量是存放在内存的静态区域中,所以在程序运行过程中const变量只有一个拷贝,而#define 所定义的宏变量却有多个拷贝,所以宏在程序运行过程中所消耗的内存要比const变量的大得多.#define所定…
#define RADIUS 100; const  float   RADIUS = 100; (1) 编译器处理方式不同 define宏是在预处理阶段展开. const常量是编译运行阶段使用. (2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开. const常量有具体的类型,在编译阶段会执行类型检查. (3) 存储方式不同 define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存.(宏定义不分配内存,变量定义分配内存.) const常量会在内存中分配…