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

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

pragma mark 概念

pragma mark 代碼

"main.c"

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

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

"zs.c"

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

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

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

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

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