日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 工業(yè)控制 > 電子設計自動化
[導讀]在C++中,要定義一個常量,有兩種主要的做法 1. 符號常量 (#define) 2. 常值變量 (const) 符號常量的定義方式,其實與C++本身沒有關系,它是一個編譯器指令,或者稱為預處理指令(有關的預處理指令還有#include,#i

在C++中,要定義一個常量,有兩種主要的做法

1. 符號常量 (#define)

2. 常值變量 (const)

符號常量的定義方式,其實與C++本身沒有關系,它是一個編譯器指令,或者稱為預處理指令(有關的預處理指令還有#include,#ifdefine等等)。它的用法如下

#define PI 3.1415926

這樣的語法就定義了一個叫做PI的符號常量,它的值指定為3.1415926.

【注意】因為它其實不是C++語法,所以它不需要(也不能)用分號結束。

我們怎么使用呢


與符號常量相對的,常值變量需要通過const關鍵字定義。相對來說,const更加現(xiàn)代,它是c++的一個關鍵字,它的用法如下

const double PI=3.1415926;

我們把上面的代碼轉換一下


總結起來說,我們推薦用const,而不是#define預處理指令

1. const可以定義數(shù)據(jù)類型,提高了類型安全性。例如,我們上面可以指定PI這個常量是double類型

2. const既然是變量(這里有點別扭,它其實是不變的,但名稱叫做常值變量),那么就有地址,適用面更加廣

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

題外話:在C#中能不能使用符號呢?

C#中也可以使用符號定義,例如下面這樣


一般這樣做的目的都是為了改變編譯行為。因為#define是編譯器指令

除了用#if這樣的條件編譯語句之外,我們還可以用Conditional指令


[Conditional("MINI")]//Conditional 是一個新的Attribute,可以進行條件編譯,本例的意思是只有定義了MINI這個符號的情況下,才將該方法編譯進去。否則,任何其他調用處都將放一個空白。


但是conditional只能針對void方法,這其實很好理解。因為你要知道,它可能被替換掉,就是可能不被編譯。如果它有返回值,而且該值需要被其他程序代碼使用,那不就是麻煩了嗎



來源:神秘3次

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉