常數我已經設置了一些默認的顏色在C#WinForms應用程序,像這樣: readonly Color ERROR = Color.Red;
readonly Color WARNING = Color.Orange;
readonly Color OK = Color.Green;
據我所知,只讀基本上是恆定的,我的目的。如果我試圖將它們定義爲常量,編譯器會指出它必須是編譯時常量,而Col
可能重複: Is 1/0 a legal Java expression? 爲什麼這段代碼編譯? class Compiles {
public final static int A = 7/0;
public final static int B = 10*3;
public static void main(String[] args) {}
}
如果我看
Java語言文檔中提到「如果原始類型或字符串被定義爲常量,並且該值在編譯時已知,則編譯器會用代碼中的值替換常量名稱。被稱爲編譯時常量。「 所以我的理解是,如果我們有一段代碼: private final int x = 10;
然後,編譯器會用文字「10」替換代碼「x」的每次出現。 但表示假設不變與在運行時間值初始化, private final int x = getX(); // here
我知道這是一個簡單的問題,但我很困惑。我有一個相當典型的海灣合作委員會警告這通常是很容易解決: warning: comparison between signed and unsigned integer expressions 每當我有一個十六進制常量最顯著位,像0x80000000L,編譯器將其解釋爲無符號。例如編譯具有-Wextra這個代碼將導致警告(GCC 4.4倍,4.5倍):我專門爲
我很好的典型範例精通常數: //.h
extern const int myInt;
//.c, .m, .cpp, what have you
const int myInt = 55;
但一定是給它放入.h文件與庫或其他情況下,您使用的方式無法訪問實施文件。 例如,我想一個NSString不斷在Xcode項目添加到.h文件像這樣: static NSString *const my