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

开发 后端
C++定义变量主要可以通过一下两种方法来实现,一种是符号常量,而另外一种则是常值变量。我们将会在这里详细介绍。

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

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

1. 符号常量 (#define)

2. 常值变量 (const)

 

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

#define PI 3.1415926

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

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

 

我们怎么使用呢

 

  1. #include < iostream> 
  2. #define PI 3.1415926   
  3. using namespace std;   
  4. int main()  
  5. {  
  6. double Area(int radio);//声明方法  
  7. cout< <  Area(2)< < endl;  
  8. return 0;  
  9. }   
  10. double Area(int radio)//实现方法,这是一个根据半径计算面积的方法  
  11. {  
  12. return PI*radio*radio;  

 

 

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

 

  1. const double PI=3.1415926; 

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

 

  1. #include < iostream>   
  2. using namespace std;   
  3. const double PI=3.1415926;   
  4. int main()  
  5. {  
  6. double Area(int radio);//声明方法  
  7. cout< <  Area(2)< < endl;  
  8. return 0;  
  9. }   
  10. double Area(int radio)//实现方法,这是一个根据半径计算面积的方法  
  11. {  
  12. return PI*radio*radio;  

 

 

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

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

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

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

 

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

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

 

  1. #define MINI   
  2. using System;  
  3. using System.Collections.Generic;  
  4. using System.Text;   
  5. namespace ConsoleApplication1  
  6. {  
  7. class Program  
  8. {  
  9. static void Main(string[] args)  
  10. {   
  11. #if MINI  
  12. Console.WriteLine("你定义了MINI符号");  
  13. #endif  
  14. Console.Read();  
  15. }  
  16. }   

 

 

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

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

 

 

  1. #define MINI   
  2. using System;  
  3. using System.Collections.Generic;  
  4. using System.Text;  
  5. using System.Diagnostics;   
  6. namespace ConsoleApplication1  
  7. {  
  8. class Program  
  9. {  
  10. static void Main(string[] args)  
  11. {   
  12. #if MINI  
  13. Console.WriteLine("你定义了MINI符号");  
  14. #endif   
  15. //按条件调用方法  
  16. SomeMethod();   
  17. Console.Read();  
  18. }   
  19. [Conditional("MINI")]//Conditional 是一个新的Attribute,可以进行条件编译,
    本例的意思是只有定义了MINI这个符号的情况下,才将该方法编译进去。
    否则,任何其他调用处都将放一个空白。  
  20. static void SomeMethod()  
  21. {  
  22. Console.WriteLine("你调用了我的方法");  
  23. }  
  24. }   

 

但是conditional只能针对void方法,这其实很好理解。因为你要知道,它可能被替换掉,就是可能不被编译。如果它有返回值,而且该值需要被其他程序代码使用,那不就是麻烦了吗。

以上就是对C++定义变量的相关介绍。

责任编辑:曹凯 来源: 博客园
相关推荐

2010-01-25 10:25:19

C++变量

2010-02-06 14:12:54

C++继承方式

2010-01-26 15:51:06

C++变量

2010-02-02 14:06:50

C++ const变量

2024-03-14 11:27:16

C++变量编程

2010-01-13 17:04:36

C++语言

2010-01-18 15:40:37

Visual C++工

2010-02-04 16:39:26

C++析构函数

2010-02-02 17:39:31

C++构造函数

2010-02-03 17:23:27

C++使用接口

2010-02-03 16:42:45

C++变量作用域

2010-01-13 18:34:43

C++ 托管

2010-01-18 16:27:26

C++语言

2010-01-18 10:53:26

2010-01-28 11:08:09

C++变量

2010-01-28 13:27:12

C++类定义

2010-01-28 10:07:52

C++手册

2010-02-06 11:13:11

C++ makefil

2010-01-21 11:23:58

C++函数调用

2010-01-20 09:54:27

C++数据类型
点赞
收藏

51CTO技术栈公众号