#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