C++定义变量使用方式简介

C++编程语言对于广大开发人员来说并不陌生,它的作用广泛,能够帮助我们轻松的完成各种功能。在这里我们将会为大家详细介绍有关C++定义变量的方法,希望能够帮助大家解决一些问题。

C++定义变量有两种主要的做法

1. 符号常量 (#define)

2. 常值变量 (const)

符号常量的定义方式,其实与C++本身没有关系,它是一个编译器指令,或者称为预处理指令(有关的预处理指令还有#include,#ifdefine等等)。它的用法如下

#define PI 3.1415926

这样的语法就定义了一个叫做PI的符号常量,它的值指定为3.1415926.

【注意】因为它其实不是C++语法,所以它不需要(也不能)用分号结束。

我们怎么使用呢

#include < iostream> 


#define PI 3.1415926   


using namespace std;   


int main()  


{  


double Area(int radio);//声明方法  



cout< <  Area(2)< < endl;  



return 0;  


}   


double Area(int radio)//实现方法,这是一个根据半径计算面积的方法  


{  


return PI*radio*radio;  


} 

与符号常量相对的,常值变量需要通过const关键字定义。相对来说,const更加现代,它是c++的一个关键字,它的用法如下

const double PI=3.1415926; 

我们把上面的代码转换一下

#include < iostream>   


using namespace std;   



const double PI=3.1415926;   



int main()  


{  


double Area(int radio);//声明方法  



cout< <  Area(2)< < endl;  



return 0;  


}   


double Area(int radio)//实现方法,这是一个根据半径计算面积的方法  


{  


return PI*radio*radio;  


} 

总结起来说,我们推荐用const,而不是#define预处理指令

1. const可以定义数据类型,提高了类型安全性。例如,我们上面可以指定PI这个常量是double类型

2. const既然是变量(这里有点别扭,它其实是不变的,但名称叫做常值变量),那么就有地址,适用面更加广

3. 语法上也更好理解一些

题外话:在C#中能不能使用符号呢?

C#中也可以使用符号定义,例如下面这样

#define MINI   


using System;  


using System.Collections.Generic;  


using System.Text;   


namespace ConsoleApplication1  


{  


class Program  


{  


static void Main(string[] args)  


{   


#if MINI  


Console.WriteLine("你定义了MINI符号");  


#endif  


Console.Read();  


}  


}   


} 

一般这样做的C++定义变量目的都是为了改变编译行为。因为#define是编译器指令

除了用#if这样的条件编译语句之外,我们还可以用Conditional指令

#define MINI   


using System;  


using System.Collections.Generic;  


using System.Text;  


using System.Diagnostics;   


namespace ConsoleApplication1  


{  


class Program  


{  


static void Main(string[] args)  


{   


#if MINI  


Console.WriteLine("你定义了MINI符号");  


#endif   


//按条件调用方法  


SomeMethod();   


Console.Read();  


}   


[Conditional("MINI")]//Conditional 是一个新的Attribute,可以进行条件编译,
本例的意思是只有定义了MINI这个符号的情况下,才将该方法编译进去。
否则,任何其他调用处都将放一个空白。  


static void SomeMethod()  


{  


Console.WriteLine("你调用了我的方法");  


}  


}   


} 

相关推荐