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

为什么第三行的代码要用 static 而不是 extern ?

#include <stdio.h>

extern void printLine();

static void say()

{

    printLine();

    printf("I love imooc\n");

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

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

    printLine();

}


正在回答

3 回答

因为第三行是内部的 外部是*

0 回复 有任何疑惑可以回复我~

本人新手,目前是这样理解的,要是不对望大神指点

#include "test.c"   //引用test.c文件----#include的作用纯粹就是内容拷贝,运行时被包含文件test.c中的文本将替换源代码文件中的#include 指令;用extern定义say()函数,程序运行时相当于hello.c与test.c中都定义了外部函数say(),而C语言规定不允许有同名的外部函数,所以编译会报错。

不使用#include "test.c"时则需用extern定义say()函数:

hello.c

#include <stdio.h>
//#include "test.c"   //引用test.c文件
extern void printLine() //这里定义的方法对吗?
{
   printf("**************\n");   
}
int main()
{
    extern void say();
    say();
    return 0;
}

test.c

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


3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么第三行的代码要用 static 而不是 extern ?

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