請問 define PI 3 1416比float pi 3 1416有什麼優勢呢?

時間 2021-05-09 11:03:42

1樓:竹本祐太

我的理解是沒啥好處。在你的編碼中,請使用const代替define,define連型別都沒有,即便有所謂的好處,也好的非常有限。

2樓:

如果你的目標機ram比較小,比如一些8位微控制器只有十幾二十個byte可用,使用#define可以節省20%的ram。

對於pc,如果編譯後的資料段比整頁多兩三個位元組,可以使用#define,這樣少一次缺頁中斷,ram也可以少用一頁

3樓:孔乙己

根據effective C++作者的建議,能用const變數代替define的,都用const變數。

我本來想說乙個"優點",卻沒想到發現乙個問題,已在stackoverflow上提問,坐等大神回答。

#define PI 3.1416

#define STRING(x) #x

#define STRING_PI STRING(PI)void test()

MACRO definition both for a number and a string

已經有答案了

#include

#define Q(x) #x

#define QUOTE(x) Q(x)#define PI 3.1416

#define STRING(x) QUOTE(x)#define STRING_PI STRING(PI)#include

void main()

這麼做的好處就是少一次從數字到文字的轉換。

4樓:黃柯

孔子東遊,見兩小兒辯鬥,問其故。

一兒曰:「我以日始出時去人近,而日中時遠也。」

一兒曰:「我以日初出遠,而日中時近也。」

一兒曰:「日初出大如車蓋,及日中則如盤盂,此不為遠者小而近者大乎?」

一兒曰:「日初出滄滄涼涼,及其日中如探湯,此不為近者熱而遠者涼乎?」

孔子不能決也。

兩小兒笑曰:「孰為汝多知乎?」

孔子當時不知道答案,現在的你知道誰說的對了麼?

5樓:雨花

#define _USE_MATH_DEFINES#include

auto

area

=M_PI*r

*r;有庫建議調庫......

6樓:DuaiHan1020

像PI這麼基本的東西,define沒啥問題。當然出於模組化,封裝化的系統設計,類內static常量真香。

其他細節,別的回答已經說的很清楚了

7樓:毛毛

define的常量在執行是可以少乙個賦值操作(mov)

define的常量在參與運算時,如果是常量運算,則在編譯期就可以計算出結果

盡量用const替換define

8樓:哲學家

沒任何優勢

一堆人說巨集占用記憶體少,都是錯的。對任何不太古老的編譯器來說,編譯出來的結果是一樣的,這種程度的優化是最最基本的了。

9樓:璐璐

有個劣勢

當你的巨集定義在乙個dll裡面,另外乙個dll採用include標頭檔案的方式,使用了這個巨集,當你需要改這個修改這個巨集的時候,引用這個巨集的dll需要重新編譯。

你採用const 那種方式,另外的那個dll不需要重新編譯。

10樓:鄧哲

這麼比較感覺用處不大,建樓主修改成

#define PI 3.14159F

static const float Pi = 3.14159F;

因為這裡 #define 定義常量,對應的也應該是常量。上面的兩種形式當然推薦第二種,因為這樣編譯器可以做型別檢測。

如果比較題主答案, define定義常量,float定義變數,用在不同的地方,各自有各自的優勢,沒有說哪個更好。

11樓:fyw

當程式設計者有良好的程式設計習慣時,沒有優勢。

一團亂麻的程式中可能存在的優勢:防止重複命名;防止數值被修改;節省記憶體。

巨集的寫法應為:#define PI ((float)3.14)

12樓:長沙陳

原問題:

請問define pi=3.1416比int pi=3.1416有什麼優勢呢?

建議修改:

請問#define PI 3.1416比float PI=3.1416有什麼優勢呢?

請問margin note3在MacBook和iPad上的使用何者更方便?

顧白斌 2021.1.22更新 發現liquidtext更適合我,逐漸轉移到liquidtext,mn使用頻率大幅減少。原回答 我正好是marginnote在mac端和ipad端都使用的人,並且還使用anki。於我而言,所有的閱讀工作都是在ipad上完成的。ipad配筆可以圈圈畫畫手寫筆記,很有感覺...

請問《黑暗之魂3》裡long may the sun shine 是什麼意思?有什麼含義嗎?

意思是指願太陽照耀你我的道路,一詞多關,指信仰,指禮儀,但最終暗示你的選擇,洋蔥的存在能極大的暗示玩家傳火,老賊沒有明說傳火或者滅火誰對誰錯,傳火帶來了文明和壓迫,滅火帶來了黑暗和活屍 獸化,既活著也失去了意義,在聯機中的梗代表路見不平一聲吼,順手送你過boss的好哥哥 有劫 要說有什麼意思,我感覺...

請問iQOO3值得入手嗎

0.12 一般,55瓦充電發燙,沒有高刷,雙揚,但是,真省電,王者最高清沒具體測過,打了兩個小時才用了20幾,吃雞海島2.0全部最高發熱不明顯,對了,忘了說吃雞肩鍵了,那玩意沒用,真剛槍的時候還是要靠手搓,健鍵靈敏度太差了,我吃雞就用了半局,就再也沒用過 ccccwing01 在我看來,值得。因為沒...