C语言 extern - C语言零基础入门教程
生活随笔
收集整理的這篇文章主要介紹了
C语言 extern - C语言零基础入门教程
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄
- 一.簡介
- 二.extern 修飾變量
- 1.在單文件中使用 extern
- 2.在多文件中使用 extern
- 三.extern 修飾函數(shù)
- 四.猜你喜歡
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C 語言基礎(chǔ)入門
一.簡介
如果一個(gè)變量使用用關(guān)鍵字 extern ,對(duì)該變量作“外部變量聲明”,表示該變量是一個(gè)已經(jīng)定義的外部變量。有了此聲明,就可以從“聲明”處起,合法地使用該外部變量。
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語言教程 - C語言 extern //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************//* file1.c */int x = 10; int func1();/* file2.c */extern int x ; //該變量是已經(jīng)在外部定義,此處只做一個(gè)聲明 extern int func1();//該函數(shù)是已經(jīng)在外部定義,此處只做一個(gè)聲明int main(void) {printf("x = %d",x); // x = 10fun1();return 0; }二.extern 修飾變量
1.在單文件中使用 extern
首先我們回到全局變量中有講到:在所有函數(shù)外部定義的變量稱為全局變量(Global Variable),它的作用域默認(rèn)是從定義變量的位置到本源文件結(jié)束都有效。
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語言教程 - C語言 extern //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************/#include <stdio.h>void func1(){x += 10;y += 20;printf("函數(shù):%s 中 x = %d y = %d \n",__FUNCTION__,x,y);}int x = 10; int y = 20;void func2(){x += 10;y += 20;printf("函數(shù):%s 中 x = %d y = %d \n",__FUNCTION__,x,y);} int main(){func1();func2();printf("函數(shù):%s 中 x = %d y = %d \n",__FUNCTION__,x,y);return 0; } /* 輸出:main.cpp: In function ‘void func1()’: main.cpp:6:5: error: ‘x’ was not declared in this scope6 | x += 10;| ^ main.cpp:7:2: error: ‘y’ was not declared in this scope7 | y += 20;| ^*/對(duì)于上面的編譯器報(bào)錯(cuò),我們可以通過 extern 來解決這個(gè)問題,示例代碼如下:
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語言教程 - C語言 extern //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************/#include <stdio.h>void func1(){extern int x; //聲明一個(gè)外部變量extern int y; //聲明一個(gè)外部變量x += 10;y += 20;printf("函數(shù):%s 中 x = %d y = %d \n",__FUNCTION__,x,y);}int x = 10; //全局變量 int y = 20;void func2(){x += 10;y += 20;printf("函數(shù):%s 中 x = %d y = %d \n",__FUNCTION__,x,y);} int main(){func1();func2();printf("函數(shù):%s 中 x = %d y = %d \n",__FUNCTION__,x,y);return 0; } /* 輸出:函數(shù):func1 中 x = 20 y = 40 函數(shù):func2 中 x = 30 y = 60 函數(shù):main 中 x = 30 y = 60*/2.在多文件中使用 extern
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語言教程 - C語言 extern //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************//****max.c****/ #include <stdio.h>/*定義兩個(gè)全局變量*/ int x=10; int y=20; int max() {return (x > y ? x : y); }/***main.c****/ #include <stdio.h>/*extern 聲明外部變量*/ extern int x ; extern int y ;int main(void) {printf("x = %d y = %d\n",x,y);return 0; }有了 extern 聲明的外部變量可以直接使用,注意:使用 extern 聲明的外部變量不需要再次初始化,僅僅只是作為一個(gè)聲明而已,該變量的定義已經(jīng)在其他文件中完成!
三.extern 修飾函數(shù)
使用 extern 修飾函數(shù),使用原理和上面 extern 修飾變量類似,有 extern 修飾之后,可以作為一個(gè)外部聲明,我們直接調(diào)用即可;
/******************************************************************************************/ //@Author:猿說編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語言教程 - C語言 extern //@Time:2021/07/18 07:30 //@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************//****test.c****/ #include <stdio.h>/*定義函數(shù)*/ int test_printf() {printf("this func is %s\n",__FUNCTION__);return 0; }/***main.c****/ #include <stdio.h>/*extern 聲明外部函數(shù)*/ extern int test_printf() ;int main(void) {test_printf();return 0; }四.猜你喜歡
未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? C 語言 extern
總結(jié)
以上是生活随笔為你收集整理的C语言 extern - C语言零基础入门教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jq之$(“p.test“)
- 下一篇: jq之无callback,有 alert