C語言day10-04static和exetrn對函數(shù)-作用

pragma mark static和exetrn對函數(shù)-作用

pragma mark 概念

pragma mark 代碼

"main.c"

#include <stdio.h>
#include "zs.h"
//void demo();
/**
 函數(shù)也分為內(nèi)部函數(shù) 和 外部函數(shù)
 默認情況下所有的函數(shù)都是外部函數(shù)
 什么是外部函數(shù)? 可以被其他文件訪問的函數(shù) 稱之為 外部函數(shù)
 什么是內(nèi)部函數(shù)? 只能在當前文件中訪問的函數(shù) 稱之為 內(nèi)部函數(shù)
 */
int main()
{
    text();
//    demo();
    return 0;
}
"zs.h"
void text ();

// 在.h聲明一個內(nèi)部函數(shù)沒有任何意義
//static void demo();

"zs.c"

#include "zs.h"
// 定義內(nèi)部函數(shù) 一般用于內(nèi)部函數(shù)定義的后面,而想在定義之前使用內(nèi)部函數(shù)
static void demo();

// 只要在函數(shù)的返回值前面加上一個extern就可以函數(shù)變成一個外部函數(shù),由于默認就是外部函數(shù).\
    所以在開發(fā)中一般情況extern沒人寫
// 如果extern寫在函數(shù)的實現(xiàn)中(.c文件),代表定義一個外部函數(shù)
// 如果extern寫在函數(shù)的聲明中(.h),代表聲明一個外部函數(shù)
extern void demo()
{
    printf("text\n");
    demo();
}
void text ()
{
    printf("text\n");
    demo(); // 如果需要使用在 前面聲明一下
    
}
/**
 "_demo", referenced from:
 _main in main.o
 意思是 在main.o里面沒有找到 demo這個函數(shù)
 */

// 只要在函數(shù)的返回值 前面加上static就可以讓函數(shù)變?yōu)閮?nèi)部函數(shù),其他文件就不能訪問了
// 如果static寫在函數(shù)的實現(xiàn)中,代表定義一個內(nèi)部函數(shù)
// 如果static寫在函數(shù)的聲明中,代表聲明一個內(nèi)部函數(shù)
static void demo()
{
    printf("demo\n");
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容