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! ******************
不用extern不给经验的但是可以在注释里加个extern然后就可以了
//#include <stdio.h> // 不注释也可以正常运行
#include "test.c" // 我通常不会引用*.c文件,因为这很容易引起重复定义的错误
void printLine(void) // extern
{
printf("******************\n");
}
int main(void)
{
say();
return 0;
}
定义了static
void
say() main函数又可以调用 就是说定义static 函数 不包含文件无法调用 包涵文件才能调用 定义extern函数 不包涵文件也可以调用 是这个意思嘛
多谢。