自定義常量定義應該在哪,C語言自定義函式中定義常量 變數的問題

2022-03-31 12:04:41 字數 2766 閱讀 4503

1樓:維灣教育培訓

#define和const

1.define是巨集定義,程式在預處理階段將用define定義的內容進行了替換。因此程式執行時,常量表中並沒有用define定義的常量,系統不為它分配記憶體。

const定義的常量,在程式執行時在常量表中,系統為它分配記憶體。

2.define定義的常量,預處理時只是直接進行了替換。所以編譯時不能進行資料型別檢驗。

const定義的常量,在編譯時進行嚴格的型別檢驗,可以避免出錯。3.define定義表示式時要注意「邊緣效應」,例如如下定義:

#define n 2+3 //我們預想的n值是5,我們這樣使用n,int a = n/2; //我們預想的a的值是2.5,可實際上a的值是3.5原因在於在預處理階段,編譯器將 a = n/2處理成了 a = 2+3/2;這就是巨集定義的字串替換的「邊緣效應」因此要如下定義:

#define n (2+3)。const定義表示式沒有上述問題。const定義的常量叫做常變數原因有二:

const定義常量像變數一樣檢查型別;const可以在任何地方定義常量,編譯器對它的處理過程與變數相似,只是分配記憶體的地方不同。

2樓:風若遠去何人留

都可以函式外,函式內,隨意

根據你要使用常量的範圍,也就是變數的有效範圍決定

c語言自定義函式中定義常量、變數的問題

3樓:陽光的雷咩咩

主函式裡多次呼叫此函式,那麼是不是算多次定義---不是,算一次定義

變數ky是應該寫在自定義函式的外面、裡面還是寫在主函式裡---取決於業務需求,你上面的寫法就可以

4樓:

顯然提問者沒有搞清楚 函式 宣告和定義 這兩個概念

第一行void abc(void); 是宣告,不是定義,因為沒有函式體,只是告訴main函式,你要呼叫的abc函式是有的,定義在後面

main函式中的abc函式是呼叫,呼叫當然可以多次使用,函式的作用也在於此,一次定義,多次呼叫,體現**復用的好處

最後void abc(void) 到結束,是定義了,說明函式幹什麼的

ky 寫 abc函式裡 是推薦的方式,成為區域性變數,函式呼叫完後,ky可被系統釋放記憶體

ky不能寫在main函式裡,abc將無法訪問其他**塊(花括號內)的區域性變數

ky可以寫在最外面,即不在任何**塊內,且要寫最頂行(建議),這樣後續的函式都可以訪問該(全域性)變數,但一般建議不要過多使用全域性變數

c語言中是如何定義常量的啊

5樓:劉世媛

我們在用c程式設計時有時需要定義不變的變數,即常量,有兩種方法。

例如:定義常量pi的兩種方式:

1. #define pi 3.1415926f;

2. const float pi 3.1415926f;

常量有整型常量、浮點型常量、字元型常量及字串常量。 『常量定義是指定義符號常量,用乙個識別符號來代表乙個常量,通過巨集定義預處理指令來實現。

格式:#define識別符號常量

由使用者命名的識別符號是符號常量名。作為符號常量名,一般大寫。一旦定義,在程式中凡是出現常量的地方均可用符號常量名來代替。

對使用了符號常量的程式在編譯前會以實際常量替代符號常量。

全域性變數和區域性變數的區別:

6樓:匿名使用者

#define count 60

這叫巨集定義,不叫常量

常量的定義:

const int count = 60;

形參指定型別,實參指定數值

7樓:天雲一號

c語言定義常量常用的方法有以下2種:

第一種:巨集定義

#define n 3  // 定義了乙個常量為3的巨集n,在程式中n就代表3

第二種:給變數初始化賦值

int a = 2;  // 定義了乙個int型變數,並賦值為2,其實這是用變數來定義常量

注:定義常量還是用巨集定義的比較多。

8樓:匿名使用者

常量的定義:

#define count 60

這就定義了乙個常量 count 它的值是乙個常量60 在整個程式中不變

關於實際引數和,形式引數:

可以這樣通俗的去理解:

主調函式中的引數是實際引數,被調函式中的引數是形式引數,比如說:如下**段

被調函式:

int max(int a,int b)

主調函式:

main()

在北調函式max(int a,int b)中a,b是形式引數在主函式中max(a,b)中的a,b是實際引數;

9樓:匿名使用者

可以用預處理命令#indefine

和const靜態定義個數便是常量

形參就是函式定義時,所給的引數;而實參就是在main函式中呼叫時所使用的引數,兩者可以相同也可以不相同。

10樓:匿名使用者

實參在主調函式中,形參在被調函式中

當使用的是值傳遞方式時,實參值傳遞給形參,但是形參不把值傳回實參,即單向傳遞。

當使用位址傳遞時,實參位址傳遞給形參,形參把位址傳回實參,是雙向傳遞。

11樓:

#define

定義在全域性區

12樓:☆行雲流水

#define count 100

實參在主調函式中,形參在被調函式中

C語言中,定義自定義庫函式時該如何寫對應的標頭檔案

首先,要明白一點。標準庫的標頭檔案多次include是不會發生重定義的錯誤的。所有的標準庫檔案的內容都是如這般寫的 ifndef stdlib h define stdlib h endif 這保證了它的內容只會被引用一次。所以要include,只寫一句 include 就可以了。另外,你自己的標頭...

c語言中自定義函式與系統函式的區別

系統函式是包含在系統標頭檔案中的函式,它作為一個外部函式可以被所以包含它標頭檔案的檔案中使用。static除外 庫檔案中的函式多數是與系統無關的,可移植的。自定義函式 包含在自己建立的檔案中,在使用時包含該檔案。1 位置上 系統在系統預設的位置,自定義在本工程的資料夾下 比如 include inc...

用自定義函式進行兩個數的交換C語言

要用函式實現兩個數的交換,則函式引數必須定義為指標形式,否則函式中對專數值的修改將不會屬影響主調函式,這是c語言的規則。所以,以整型為例,自定義函式書寫如下 void swap int int a,int b c語言用函式如何實現兩個數交換?include stdio.h int swap int ...