2015-10-09 102 views
0

我正在學習C語言。我正在閱讀以聲明常量。是什麼用C語言聲明常量

#define PI 3.1415927 

float const PI = 3.1415927; 

感謝之間的差異。

+0

一個是預處理器定義,另一個是實際常量。 –

回答

2
  1. #define是文本替換。代碼中出現的所有PI將在編譯之前被替換爲3.1415927

  2. const創建只讀變量。這意味着你不能分配給他們,但你仍然不能使用他們。 case標籤,因爲它們不是真正的常量。

+0

注意:這是一個相當不完整的差異列表,可以在重複問題答案中找到更完整的列表。 – hyde

+0

缺少什麼(除了#ifdef之外)? – melpomene

+0

好吧,考慮地址(可能與const變量),轉換爲字符串(可能與preprosessor),差異使用作爲數組大小(變量創建一個VLA,技術上),從我的頭頂。 – hyde