當前位置:首頁 » 編程軟體 » 常量編譯時

常量編譯時

發布時間: 2023-07-15 21:22:11

⑴ C語言程序中的關於常量的計算是在編譯時進行的還是程序執行時進行的

編譯的時候,先會進行預編譯處理,就是把程序中所有的符號常量用數字常量替換,比如說你的例子中的N,注意只是發生替換,所有的計算都是在程序執行的時候進行的! C是面向過程的,每次執行都會重新計算一次!

⑵ C語言程序中的關於常量的計算是在編譯時進行的還是程序執行時進行的

編譯的時候,先會進行預編譯處理,就是把程序中所有的符號常量用數字常量替換,比如說你的例子中的N,注意只是發生替換,所有的計算都是在程序執行的時候進行的!
C是面向過程的,每次執行都會重新計算一次!

java中編譯期常量所指的是什麼

classInitalizedClass{
static{
System.out.println("!");
}
publicstaticintinititalize_varible=1;

}

{
publicstaticvoidmain(String[]args){
System.out.println(InitalizedClass.inititalize_varible);

}

}
上面的結果是:
!
1

classInitalizedClass{
static{
System.out.println("!");
}
//和上面的例子唯一的差異就是此處的變數INITIALIZED_VARIBLE被聲明為final
_VARIBLE=1;

}

{
publicstaticvoidmain(String[]args){
System.out.println(InitalizedClass.INITIALIZED_VARIBLE);

}

}

上面的結果是:
1

為什麼兩個例子執行結果不一樣,原因是第二個例子中的INITIALIZED_VARIBLE為編譯期常量,它不會導致類的初始化的

⑷ 什麼是常量表達式 書里說,常量表達式是編譯器在編譯時就能夠計算出結果的表達式. 不太理解,

舉例:
int n = 1; //這是確定無疑的,1是常量表達式,不可能變化
另一個例子:
int x = n + 1; //編譯器並不能根據這句就推斷出x一定等於2,因為極有可能在其他地方改變n的值,因此編譯器就不敢保證它是常量

⑸ java 中的編譯期常量是什麼使用它又什麼風險

編譯期常量就是所謂的 public final static 常量。
由於在編譯時就確定了值,在使用的場合會直接寫成值。而不是直接到原來的類中讀取。
這樣會有一個問題。 如果 類 A 提供了常量 類B使用了常量。並都進行了編譯。
然後,修改了類A的源碼,調用系統進行編譯。
系統發現類A是新的代碼,編譯了,類B是舊的代碼,就不進行編譯,使用舊的類。
由於類B中直接編譯進了舊的值,導致類A的修改無法反映到類B中。
這樣造成了風險。

熱點內容
仿草料源碼 發布:2025-02-07 01:08:31 瀏覽:532
python多線程map 發布:2025-02-07 01:04:37 瀏覽:461
python線程時間 發布:2025-02-07 01:04:26 瀏覽:793
精易編程 發布:2025-02-07 00:49:10 瀏覽:464
訪問桂綸鎂 發布:2025-02-07 00:49:00 瀏覽:938
安卓免費掃描哪個好 發布:2025-02-07 00:47:40 瀏覽:90
金蝶修改伺服器地址 發布:2025-02-07 00:41:08 瀏覽:867
安卓手機版的蒸汽平台在哪裡下載 發布:2025-02-07 00:29:04 瀏覽:454
php自學中心 發布:2025-02-07 00:28:50 瀏覽:270
手機卡在哪裡設置密碼 發布:2025-02-07 00:21:25 瀏覽:707