求大神!static的只限定于源文件问题

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

慕后端6482527

2018-10-27 10:40

test.c的源码

#include <stdio.h>

static void say(){

    printLine();

    printf("I love imooc\n");

    printf("good good study!\n");

    printf("day day up!\n");

    printLine();

}

hello.c的源码

#include <stdio.h>

#include "test.c"

extern void printLine()     

{

   printf("**************\n");   

}

int main()

{

    say();

    return 0;

}


文中提到 这里的static是对函数的作用范围的一个限定,限定该函数只能在其所处的源文件中使用,因此在不同文件中出现相同的函数名称的内部函数是没有问题的。   所以我的say函数加了static之后不应该只能在test.c里面使用吗?为什么还可以在hello.c中使用,函数所处源文件到底是什么意思??有例子可举更好 谢谢各位

写回答 关注

2回答

  • 坐觉长安空
    2018-11-13 20:15:59

    可能是文件的覆盖吧,不是粘贴而是覆盖

    慕后端648...

    不懂。

    2018-11-13 20:24:27

    共 1 条回复 >

  • CassanBob
    2018-10-27 20:54:38

    emm......

    hello.c是个源文件,#include"test.c"效果想想其实和#include<stdio.h>一样,那么也就是说引用以后,都是同一个源文件下了,相当于复制粘贴把test.c的东西拷过来。如导师给出的话中所说“限定该函数只能在其所处的源文件中使用”,那么这个条件在文件的迁移中满足,所以也就可以在hello.c中使用


    慕后端648... 回复遗失的美好灬

    还是不太理解 为什么会重名 我只定义了一次啊

    2018-11-13 20:24:07

    共 6 条回复 >

C语言入门

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

926226 学习 · 20797 问题

查看课程

相似问题