z小康
2018-08-07 06:58
采纳率: 100%
浏览 2.4k

static在函数声明的时候加还是函数定义的时候加

如题,我现在有一个函数先声明后定义的,程序能正常运行,
然后我想在这个函数前加上static,我试过只在声明的时候加,
只在定义的时候加,还有声明和定义的时候都加,都无法通过
编译,linux下c语言写的,我现在不想把这个函数的代码提到
前面去,就想要先声明后定义,而且要给它加上static,请问
该怎么解决?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • 浮华蒲公英 2018-08-07 07:07
    已采纳

    这个是需要都加的,静态函数是需要定义和声明同步的

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • 化屾为海 2018-08-07 08:17

    都需要加的,如果不清楚的话,有一个简单的办法,就是将静态函数定义在源文件的上面,也就是将需要提供给外部调用的接口定义在静态函数之后,这样就不需要对静态函数进行申明了(也就是直接定义一个静态函数)。提供给外部调用的接口就可以直接调用静态函数了,省去静态函数申明这一步了。

    评论
    解决 无用
    打赏 举报
  • z小康 2018-08-07 08:30

    好像是编程环境的问题,在vs下面试了下确实能跑过,但是linux下面怎么加都编不过,请问有人遇到过这种问题吗?是要在编译的时候加什么选项吗?

    评论
    解决 无用
    打赏 举报
  • “编程”中的翠翠 2018-08-07 12:45

    你的声明和定义是在一个文件中吗?还是说声明和定义是在不同文件中

    评论
    解决 无用
    打赏 举报
  • xiaopandj123 2018-08-07 14:25

    一般情况,静态函数不用写在头文件中,只将接口函数放在头文件,静态函数在被停调用前一定要声明,至于加static,建议声明和定义都加,但是只是定义时加是不会报错的。

    评论
    解决 无用
    打赏 举报
  • 帅气的Ezio 2018-08-08 02:09

    c的话都要加。如果是c++,定义static成员变量,在类中声明,并在类外(不声明static)进行初始化。而且无需在定义中再次声明static

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题