gcc visibility hidden 与 static

来源:互联网 发布:网络交换机设置 编辑:程序博客网 时间:2024/05/21 21:38
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>int FuncA(){    printf("FuncA()!\n");    return 0;}static int FuncB(){    printf("FuncB()\n");    return 0;}int__attribute__ ((visibility ("hidden")))FuncC(){    printf("FuncC()\n");    return 0;}int FuncD(){    printf("FuncD()\n");    return 0;}__attribute__((visibility("hidden"))) int FuncE();int FuncE(){    printf("FuncE()\n");    return 0;} int main(int argc, char *argv[]){    FuncA();    FuncB();    FuncC();    FuncD();    FuncE();    return 0;}


   DevNet_17_82_sles10sp1:attribute> readelf  -s ./static | grep FUNC | grep Fun
    60: 080483ed    25 FUNC    LOCAL  DEFAULT   13 FuncB                          //  static 变成了 LOCAL 默认为  GLOBAL
    66: 08048406    25 FUNC    GLOBAL HIDDEN   13 FuncC                          //  hidden 变成了  HIDDEN 默认为 DEFAULT
    68: 0804841f    25 FUNC    GLOBAL DEFAULT   13 FuncD
    73: 080483d4    25 FUNC    GLOBAL DEFAULT   13 FuncA
    74: 08048438    25 FUNC    GLOBAL DEFAULT   13 FuncE


0 0
原创粉丝点击