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

供你们参考,这是我想到的基本没警告的代码!

main.c

//#include <stdio.h> // 不注释也可以正常运行
#include "test.c"    // 我通常不会引用*.c文件,因为这很容易引起重复定义的错误
void printLine(void)
{
        printf("******************\n");
}

int main(void)
{
        say();
        return 0;
}

test.c

#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();
}
# 编译代码 gcc 版本 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)
gcc -Wall -Wextra -std=c99 -o main main.c test.c
./main
******************
I love imooc
good good study!
day day up!
******************


正在回答

3 回答

不用extern不给经验的但是可以在注释里加个extern然后就可以了

//#include <stdio.h> // 不注释也可以正常运行
#include "test.c"    // 我通常不会引用*.c文件,因为这很容易引起重复定义的错误
void printLine(void)  // extern
{
        printf("******************\n");
}
 
int main(void)
{
        say();
        return 0;
}

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

定义了static void say()  main函数又可以调用   就是说定义static 函数 不包含文件无法调用 包涵文件才能调用 定义extern函数 不包涵文件也可以调用 是这个意思嘛

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

多谢。

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

举报

0/150
提交
取消

供你们参考,这是我想到的基本没警告的代码!

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