多用const 尽量不使用#define

原创 2004年10月14日 09:57:00

昨天晚上在debug别人的一个程序的时候,发现一个问题数据老不对。我是从算法上考虑的。想了半天也想不出有什么不对的地方。
今天早上发现了这样一条语句:
p= p/PAN_PERUNIT;
这个时候我突然想到
#define PAN_PERUNIT 0.0129*pi/180
原因找到了是这个define的缘故。
所以在C++中鼓励尽可能使用const而不用#define。哎,花了一个晚上时间居然发现是这个问题。以后调试别人的程序我会第一步查人家的#define之类的基本问题。

改成const
const double PAN_PERUNIT= 0.0129*pi/180;

尽量以const,enum,inline替换#define

1. 宏定义   #define ASPECT_RATIO 1.653 该宏定义ASPECT_RATIO也许从未被编译器看见,也许在编译器开始处理源代码之前就被预处理器替换了。我们知...
  • zhanghaotian2011
  • zhanghaotian2011
  • 2012年09月12日 10:12
  • 417

(1)尽量以const、enum、inline替换#define

一、对于 #define AS 1.6,通常用 const double ASI=1.6;来替换更好 原因如下: (1)ASI肯定可以写被编译器看到,当然就会进入记号表内; (2)对浮点常量...
  • x492964948
  • x492964948
  • 2016年05月16日 19:26
  • 210

Effective C++:条款1:尽量用const和inline而不用#define

这个条款最好称为:“尽量用编译器而不用预处理”,因为#define经常被认为好象不是语言本身的一部分。这是问题之一。再看下面的语句: #define ASPECT_RATIO 1.653 编译器会...
  • wangqiulin123456
  • wangqiulin123456
  • 2012年12月01日 22:30
  • 1416

为什么尽量以const,enum,inline替换#define?

为什么尽量以const,enum,inline替换#define? 1. 先了解下预处理器和编译器 从源代码到获取到可执行程序大致流程如下所示: Step1:源代码(source code)  Ste...
  • u012421852
  • u012421852
  • 2016年04月16日 14:24
  • 358

前端性能优化--能用css的地方尽量不要用js

在写这篇文字的时候,本来没有打算归类到前端性能优化的范畴,只是想写一些关于有的地方我们可以利用css代替js实现网页动态的效果,比较常见的有导航栏,提示信息等,很多时候我们会利用js实现,比如鼠标移动...
  • wzgdjm
  • wzgdjm
  • 2016年03月08日 07:58
  • 1051

尽可能使用const

尽可能使用constconst定义语义约束:制定一个不被改动的对象,编译器会强制实施这项约束。只要某值保持不变时事实,就应该确实说出来,这样编译器可以确保这项约束不违反。const多才多艺:可以用在c...
  • yzhang6_10
  • yzhang6_10
  • 2016年03月16日 22:46
  • 520

尽量使用const、enum、inline代替#define

1、 # define A 1.6 宁可使用编译器也不使用预处理,原因: 当使用预处理时,记号名称A也许从未被编译器看见(因为预处理是在编译阶段进行替换),所以一旦出现编译错误,(如果A被...
  • GoJawee
  • GoJawee
  • 2017年03月12日 11:01
  • 197

const(常量)与define(宏)的正确使用

一.首先介绍下const与宏的区别,这也是面试中经常问到的问题: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量。编译时刻:宏是预编译(编译...
  • ideaspress
  • ideaspress
  • 2016年06月07日 16:58
  • 1408

const\#define\inline的特点及区别

一、#define 1、宏定义只是简单的文本替换,所以注意将变量加上括号,例#include #define SQR(x) (x*x) int main() { int a, b = 2; a ...
  • Yangyan518
  • Yangyan518
  • 2015年06月30日 20:47
  • 622

浅析C++中的const(比#define的优势)

使用const关键字来声明变量,表明,内存被初始化后,程序便不能再对它进行修改。 const int Months = 12; 此时,应该注意的是应该在声明中对const进行初始化,我们应该避免如...
  • wangshubo1989
  • wangshubo1989
  • 2015年09月08日 11:55
  • 18744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多用const 尽量不使用#define
举报原因:
原因补充:

(最多只允许输入30个字)