为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在test.c中,要将整个函数设定为static,而不能只将printLine设定为static

#include <stdio.h>
static void say(){
    printLine();
    printf("I love imooc\n");
    printf("good good study!\n");
    printf("day day up!\n");
    printLine();
}

正在回答

1 回答

test.c中是say()函数的具体说明与实现;hello.c中的main函数中有内部函数也是say()函数,而hello.c的头文件中已经包含了"test.c",这样会让编译器认为say()函数定义了两次,所以,只能在test.c中定义say()函数为static,说明此函数作用域只在test.c中使用。

7 回复 有任何疑惑可以回复我~
#1

neversaynever991684

所以test.c是say()函数的源文件,而hello.c是printline()的源文件对吗,但是因为hello.c开头引用了test.c的文件,所以引用say()函数的时候不用extern对吗??
2020-09-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么在test.c中,要将整个函数设定为static,而不能只将printLine设定为static

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信