const 与#define 的比较

Posted borter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const 与#define 的比较相关的知识,希望对你有一定的参考价值。

const 与#define 的比较

C++ 语言可以用 const 来定义常量,也可以用 #define 来定义常量。但是前者比后 者有更多的优点:

(1) const 常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安 全检查。而对后者只进行字符替换,没有类型安全检查,并且在字符替换可能会 产生意料不到的错误(边际效应)。

(2) 有些集成化的调试工具可以对 const常量进行调试,但是不能对宏常量进行调试。

 

 1 #include <iostream>
 2 
 3 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
 4 using namespace std;
 5 int main(int argc, char** argv) {
 6     
 7     int a,b;
 8     //输入数据
 9     cout<<"a=";
10     cin>>a;
11     cout<<"b=";
12     cin>>b;
13 
14     //除法判断
15     if (b!=0 && a%b==0) {
16         cout<<b<<" divides "<<a<<endl;
17         cout<<"a/b="<<a/b<<endl;
18     }
19     else
20         cout<<b<<" does not divide "<<a<<endl;
21     return 0;
22 }

 

以上是关于const 与#define 的比较的主要内容,如果未能解决你的问题,请参考以下文章

php中const和define的区别

C/C++中define定义的常量与const常量

预处理conststatic与sizeof-使用const与#define的特点及区别

PHP常量定义之define与const对比

const与define的区别

条款02:尽量以const,enum,inline替换#define