如题,我现在有一个函数先声明后定义的,程序能正常运行,
然后我想在这个函数前加上static,我试过只在声明的时候加,
只在定义的时候加,还有声明和定义的时候都加,都无法通过
编译,linux下c语言写的,我现在不想把这个函数的代码提到
前面去,就想要先声明后定义,而且要给它加上static,请问
该怎么解决?
这个是需要都加的,静态函数是需要定义和声明同步的
都需要加的,如果不清楚的话,有一个简单的办法,就是将静态函数定义在源文件的上面,也就是将需要提供给外部调用的接口定义在静态函数之后,这样就不需要对静态函数进行申明了(也就是直接定义一个静态函数)。提供给外部调用的接口就可以直接调用静态函数了,省去静态函数申明这一步了。
好像是编程环境的问题,在vs下面试了下确实能跑过,但是linux下面怎么加都编不过,请问有人遇到过这种问题吗?是要在编译的时候加什么选项吗?
你的声明和定义是在一个文件中吗?还是说声明和定义是在不同文件中
一般情况,静态函数不用写在头文件中,只将接口函数放在头文件,静态函数在被停调用前一定要声明,至于加static,建议声明和定义都加,但是只是定义时加是不会报错的。
c的话都要加。如果是c++,定义static成员变量,在类中声明,并在类外(不声明static)进行初始化。而且无需在定义中再次声明static