C语言中变量的链接属性
當組成一個程序的各個源文件分別被編譯之后,所有的目標文件以及那些從一個或多個函數(shù)庫中引用的函數(shù)鏈接在一起,形成可執(zhí)行程序。如果相同的標識符出現(xiàn)在幾個不同的源文件中時,它們是表示同一個變量還是不同的變量呢?這個就取決于標識符的鏈接屬性(linkage)。要注意的是,標識符的作用域與鏈接屬性有關(guān),但這兩個屬性不相同。?鏈接屬性一共有3種:?
| none | 沒有鏈接屬性的標識符(none)總是被當作單獨的個體,也就是說該標識符的多個聲明被當作獨立不同的實體。? |
| internal | 屬于internal鏈接屬性的標識符在同一個源文件內(nèi)的所有聲明中指同一個實體,但位于不同源文件的多個聲明則屬于不同的實體。使用static關(guān)鍵字來聲明一個internal類型的標識符。static只對缺省鏈接屬性為external的聲明才有改變鏈接屬性的效果。static用于聲明局部變量時,是使這個變量成為靜態(tài)變量,就是這個變量在程序的整個運行過程中總是存在的,直到程序結(jié)束。? |
| external | 屬于external鏈接屬性的標識符無論聲明多少次、位于幾個源文件都表示同一個實體。當extern關(guān)鍵字用于源文件中一個標識符的第1次聲明時,它指定該標識符具有external鏈接屬性。但是,如果它用于該標識符的第2次或以后的聲明時,它并不會更改由第1次聲明所指定的鏈接屬性。 |
轉(zhuǎn)載于:https://my.oschina.net/liangzhenghui/blog/112636
總結(jié)
以上是生活随笔為你收集整理的C语言中变量的链接属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pcb结构链表_lwip中tcp_pcb
- 下一篇: 输出形状