解析C 中的常量及如何在C 程式設計中定義常量

2022-09-26 06:51:11 字數 729 閱讀 9771

常量是在編譯時已知並在程式的生存期內不發生更改的不可變值。常量使用 const 修飾符進行宣告。只有 kjcvazvc# 內建型別(system.object 除外)可以宣告為 const。

使用者定義的型別(包括類、結構和陣列)不能為 const。請使用 readonly 修飾符建立在執行時初始化一次即不可再更改的類、結構或陣列。

c# 不支援 const 方法、屬性或事件。

可以使用列舉型別為整www.cppcns.com數內程式設計客棧置型別(例如 int、uint、long 等等)定義命名常量。

常量必須在宣告時初始化。例如:

kjcvazvclass calendar1

在此示例中,常量 months 始終為 12,不可更改,即使是該類自身也不能更改它。實際上,當編譯器遇到 c# 源**(例如 months)中的常量修飾符時,將直接把文字值替換到它生成的中間語言 (il) **中。因為在執行時沒有與常量關聯的變數位址,所以 const 字段不能通過引用傳遞,並且不能在表示式中作為左值出現。

system_caps_note注意

當引用在其他**如 dll 中定義的常量值時應十分謹慎。如果新版本的 dll 為常量定義了新的值,程式仍將保留舊的文字值,直到針對新版本重新編譯程式。

可以同時宣告多個相同型別的常量,例如:

class calendar2

如果不會造成迴圈引用,用於初始化乙個常量的表示式可以引用另乙個常量。例如:

class calendar3

如何在類中定義常量?

如果你想得到乙個可用於常量表示式中的常量,例如陣列大小的定義,那麼你有兩種選擇 那麼,為何要有這些不方便的限制?因為類通常宣告在標頭檔案中,而標頭檔案往往被許多單 元所包含。但是,為了避免鏈結器設計的複雜化,c 要求每個物件都只能被定義一次。如果c 允許類內定義要作為物件被存在記憶體中的實體,那麼這...

如何在C 中呼叫C程式

c 和c是兩種完全不同的編譯鏈結處理方式,如果直接在c 裡面呼叫c函式,會找不到函式體,報鏈結錯誤。要解決這個問題,就要在 c 檔案裡面顯示宣告一下哪些函式是c寫的,要用c的方式來處理。1.引用標頭檔案前需要加上 extern c 如果引用多個,那麼就如下所示 extern c 然後在呼叫這些函式之...

如何在C 中呼叫C程式?

c 和c是兩種完全不同的編譯鏈結處理方式,如果直接在c 裡面呼叫c函式,會找不到函式體,報鏈結錯誤。要解決這個問題,就要在 c 檔案裡面顯示宣告一下哪些函式是c寫的,要用c的方式來處理。1.引用標頭檔案前需要加上 extern c 如果引用多個,那麼就如下所示 extern c 然後在呼叫這些函式之...