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

来源:5-13 内部函数与外部函数

weixin_慕侠1409953

2020-06-26 18:51

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

写回答 关注

1回答

  • avensliudj
    2020-06-26 22:50:05

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

    nevers...

    所以test.c是say()函数的源文件,而hello.c是printline()的源文件对吗,但是因为hello.c开头引用了test.c的文件,所以引用say()函数的时候不用extern对吗??

    2020-09-22 13:57:19

    共 1 条回复 >

C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926206 学习 · 20797 问题

查看课程

相似问题