C语言中多文件函数调用是否可以不加extern?

以下两段代码,为什么gcc在去掉extern声明后仍然可以正常编译和运行(g++没通过),这是C允许的语法还是gcc对编译过程有自己特殊的处理方式?
main.c和function.c处于同一文件下
main.c

#include<stdio.h>

//extern void myFunction();
int main(){
    printf("this is a test\n");
    myFunction();
    return 0;
}

function.c

#include<stdio.h>

void myFunction(){
    printf("hahah");
}
阅读 3.1k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏