新聞中心
在C語言中,static關(guān)鍵字有多種用途,包括修飾變量、函數(shù)和內(nèi)部文件作用域,下面將詳細(xì)介紹static關(guān)鍵字的用法:

杜爾伯特ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
1、靜態(tài)局部變量
靜態(tài)局部變量是在函數(shù)內(nèi)部定義的,但它們的生命周期貫穿整個程序運(yùn)行期間,這意味著靜態(tài)局部變量在程序啟動時被初始化一次,并在程序結(jié)束時銷毀,靜態(tài)局部變量只能被初始化一次,不能再次賦值。
示例代碼:
#includevoid func() { static int count = 0; // 靜態(tài)局部變量 count++; printf("count: %d ", count); } int main() { for (int i = 0; i < 5; i++) { func(); } return 0; }
輸出結(jié)果:
count: 1 count: 2 count: 3 count: 4 count: 5
2、靜態(tài)全局變量
靜態(tài)全局變量是在函數(shù)外部定義的,它們的作用范圍僅限于當(dāng)前源文件,這意味著其他源文件無法訪問這個變量,靜態(tài)全局變量在程序啟動時被初始化一次,并在程序結(jié)束時銷毀。
示例代碼:
file1.c
#includestatic int global_var = 10; // 靜態(tài)全局變量 void print_global_var();
file2.c
#includeextern int global_var; // 聲明靜態(tài)全局變量 void print_global_var() { printf("global_var: %d ", global_var); }
main.c
extern void print_global_var();
int main() {
print_global_var();
return 0;
}
編譯并運(yùn)行:
gcc file1.c file2.c main.c o main ./main
輸出結(jié)果:
global_var: 10
3、靜態(tài)函數(shù)
靜態(tài)函數(shù)是在函數(shù)前加上static關(guān)鍵字定義的,它們的作用范圍僅限于當(dāng)前源文件,這意味著其他源文件無法調(diào)用這個函數(shù),靜態(tài)函數(shù)通常用于實(shí)現(xiàn)模塊內(nèi)部的輔助功能,不希望被其他模塊調(diào)用。
示例代碼:
file1.c
#includestatic void static_func() { // 靜態(tài)函數(shù) printf("This is a static function. "); } void call_static_func();
file2.c
#includeextern void call_static_func(); // 聲明靜態(tài)函數(shù) int main() { call_static_func(); return 0; }
file1.c(修改后)
#includestatic void static_func() { // 靜態(tài)函數(shù) printf("This is a static function. "); } void call_static_func() { // 普通函數(shù),用于調(diào)用靜態(tài)函數(shù) static_func(); }
編譯并運(yùn)行:
gcc file1.c file2.c o main ./main
輸出結(jié)果:
This is a static function.
網(wǎng)頁名稱:c語言static怎么用
文章地址:http://fisionsoft.com.cn/article/cdpsiic.html


咨詢
建站咨詢
