static关键字作用

static关键字作用

apple.h中定义了方法:

static void testFunction();

apple.cpp实现了该方法

static void testFunction()
{
    std::cout<<"hello,i am apple!"<<std::endl;
}

/Users/taohu/project/self_study/tutorial_04/src/apple.h:9:13: warning: function 'testFunction' has internal linkage but is not defined [-Wundefined-internal]
clang: error: linker command failed with exit code 1 (use -v to see invocation)
linking的时候会GG了

凡是加了static关键字的函数,则它只对包含该static函数的文件是可见的,在文件外是不可见的

再增加一个函数,该函数在apple.h中申明

void testFunction1();

在apple.cpp中定义

在实现的时候直接调用testFunction()

没有问题