1. 程式人生 > >IOS 開發學習六 extern 和 static 對函式的作用

IOS 開發學習六 extern 和 static 對函式的作用

一、extern 與函式

如果一個程式有多個.c原始檔  ,每個原始檔在編譯後會對應一個.obj檔案 ,這些目標檔案之間可能有關聯,把它們連結在一起再生成可執行檔案 。

  • 外部函式:當前檔案定義的函式允許其他檔案訪問。不可以有同名的名部函式;
  • 內部函式:當前檔案定義的函式不允許其它檔案訪問、呼叫,只能在內部使用,稱為內部函式。內部函式可以重名。
</pre>main.c<pre name="code" class="objc">//
//  main.c
//  firstC
//
//  Created by 謝廠節 on 15/1/13.
//  Copyright (c) 2015年 xundh. All rights reserved.
//
#include <stdio.h>
#include "waibu.h"

//extern void waibu(); //預設就是extern  所以可以省略

int main(int argc,const char *argv[])
{
    waibuhanshu();
}

waibu.c
#include "waibu.h"

extern void waibuhanshu(){ //預設就是extern
    printf("test");
}


waibu.h
#ifndef __firstC__waibu__
#define __firstC__waibu__

#include <stdio.h>

#endif /* defined(__firstC__waibu__) */

void waibuhanshu();

二、static與函式

與extern對應,static指函式是內部函式,不允許外部呼叫。