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

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

慕娘1039185

2020-11-04 19:04

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回答

  • qq_慕侠0078065
    2020-11-18 20:00:19

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

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

  • 小生风晨
    2020-11-08 14:08:29

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

  • 杼蛘
    2020-11-07 14:49:11

    多谢。

C语言入门

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

926210 学习 · 20797 问题

查看课程

相似问题