編譯靜態函數時
發布時間: 2024-05-20 21:51:20
1. C語言中static修飾的函數和普通函數的區別
靜態函數,編譯前就已經調用了,動態函數編譯時再調用
2. 編譯原理:靜態數組的存儲空間可以在編譯時確定。這句話為什麼是錯的。請給出詳細原因,謝謝。
靜態數組指的是寫代碼期間就知道大小的數組,比如int a[10];
char s[] = "hello";
這個靜態和動態分配相區別,不要和static弄混了,static/extern/auto是用於說明變數的存儲方式——也就是說,靜態數組也可以是static的,也可以是extern的,也可以是auto的。
舉個例子,下面就是一個靜態數組,但是存儲方式是auto的。
voidtest()
{
inta[10];
}
這個數組的存儲空間無法在編譯時候確定,只能在運行期間確定,原因是:盡管可以確定數組的大小,但是不能確定它的首地址。
再比如:
static int sa[10] = {0};
這個數組的存儲空間在編譯時,就可以確定了。
熱點內容