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

同样的代码为什么我是错的

#include <stdio.h>

#include "test.c"   //引用test.c文件

extern void printLine()     //这里定义的方法对吗?

{

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

}

int main()

{

    say();

    return 0;

}

正在回答

3 回答

第一次为:(hello.c)static——extern 第二细心观察一下hello.c中的第二行(#include"text".c【包括(含)text.c文件】) 再看一下第九行(say();【调用text.c】) 细心观察一下text.c的源代码你会发现其实这俩行的目的都是一样的在调用(hello.c调用text.c),所以就变成了重复调用text.c这时系统就会报错。所以我们应该将text.c中的第2行(erxtern(默认)) void say()改成static void say()[这里的static是对函数的作用范围的一个限定限定该函数只能在其所处的源文件中使用]   这样就不会和前面的起冲突了。  

第二个方法就是把hello.c的第二行引用注释(#include"text.c")去掉  这样只要把hello.c中的void printLine()前加上关键字【extern】,因为text.c中的say()前没有关键字,所以系统默认为extern。这样外部函数就可以随意被调用了。


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

慕哥0569651

谢谢大佬解释
2019-10-28 回复 有任何疑惑可以回复我~
#2

琪云

好解释,想收藏
2019-10-28 回复 有任何疑惑可以回复我~
#3

qq_慕瓜5322433

讲解十分清楚,谢大佬
2019-12-24 回复 有任何疑惑可以回复我~

看上面,还有test.c一栏

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

什么意思?

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

举报

0/150
提交
取消

同样的代码为什么我是错的

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