識別符號的鏈結屬性

2021-09-10 19:57:11 字數 564 閱讀 1470

函式在使⽤的時候可能在不同的源⽂件中,每個源⽂件單獨編譯完成之後⽣成對應的⽬標⽂件,所有的⽬標⽂件以及那些從⼀個或者多個函式庫中引⽤的函式,鏈結在⼀起形成了可執⾏程式。那相同的⼏個識別符號出現在⼏個不同的源⽂件中,如何對待他們?識別符號的鏈結屬性決定了如何處理。

源⽂件

int add(int x, int y)//具有外部鏈結屬性

int g_val = 2016; //具有外部鏈結屬性

源⽂件#include extern int add(int, int);

extern int g_val;

int main()

源⽂件

static int add(int x, int y)//具有內部鏈結屬性

static int g_val = 2016; //具有內部鏈結屬性

源⽂件#include extern int add(int, int);

extern int g_val;

int main()

//執行會報編譯錯誤

識別符號的作用域,鏈結,儲存

2.識別符號的生存期 3.識別符號的儲存 4.extern的使用 翻譯單元 源 檔案.c 其所有標頭檔案.h 不細講 示例 int glogal 1 外部鏈結 全域性作用域 static int file 2 內部鏈結 檔案作用域 int main 識別符號的四大儲存期 具有靜態儲存期的變數在程式執...

C 屬性上方的識別符號說明

我在c 中設計了乙個控制項,同時給這個控制項新增了一些屬性 get set均有 如下 屬性內容略 browsable true category aa description aaaa。browsable 指定屬性是否應該在屬性視窗中顯示,使用布林值設定。一般情況下,對於常用的和比較重要的屬性設定b...

Scala《識別符號》

val scala.math.sqrt 2 val val 42 println val 1 to10 等價於 1.to 10 1 10 等價於 1 10 1 tostring 等價於 1.tostring val a 42 a等價於 a.unary a 1 等價於 a a 1 構造列表list 1...