主要内部的功能声明和C中的外部主要功能

Dha*_*tri 4 c

第一个程序编译得正确.第二个程序给出了错误,说foo的参数太少......编译器在两个程序中都忽略了全局声明?

第一个程序:

#include<stdio.h>
    void foo();
int main()
{
  void foo(int);
  foo(1);
  return 0;
}

void foo(int i)
{
   printf("2 ");
}

void f()
{
   foo(1);
}
Run Code Online (Sandbox Code Playgroud)

第二个程序:

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

void foo()
{
   printf("2 ");
}

void f()
{
   foo();
}
Run Code Online (Sandbox Code Playgroud)

K-b*_*llo 7

内部声明在隐藏声明全局范围.第二个程序失败,因为声明void foo(int);隐藏了全球声明void foo();; 所以当你foomain内心说你指的是那个int作为论据的人.