链接属性

    xiaoxiao2021-03-25  188

    当组成一个程序的各个源文件别编译后,所有的目标文件以及那些从一个或多个函数库中引用的函数链接在一起,形成可执行程序。

    链接属性一共有三种--external(外部)、internal(内部)和none(无)。没有链接属性的标识符(none)总是被当作是单独的个体也就是说该标识符被当作独立不同的实体。internal在同一个源文件内的所有声明都指向同一个实体,但位于不同源文件的实体则分属不同的实体。external链接属性的标识符无论生声明多少次、位于几个源文件都表示同一个个实体。

    typydef char* a;

    int b;

    int c(int d)

    {

    int e;

    int f(int g){}

    }

    b,c,f都是external,其他都是none,external及外部可访问,函数c和f都可以访问,b也可以,而函数内部的局部变量不可以。

    关键字extern和static用于在声明中修改标识符的链接属性。如果某个声明具有external链接属性,在它前面加上static就会变成internal,就会变为源文件私有。

    exern为一个标识符指定external链接属性,这样就可以在其他任何位置定义这个实体了。

    转载请注明原文地址: https://ju.6miu.com/read-5735.html

    最新回复(0)