注册 登录
编程论坛 C++教室

为什么主函数和被调函数不能交换位置???

lt2201004068 发布于 2012-04-23 13:49, 561 次点击
#include<iostream>
using namespace std;

int main()
{
    int a=10,b=19,c;
    c=sum(a,b);
    cout<<c;
    return 0;   
}
int sum(int i,int j)
{
    return i+j;
}
3 回复
#2
天使梦魔2012-04-23 14:29
理论上可以编译通过,但编译器强制检查是否有未声明的东西.如果编译器不检查,编译后的程序会发生严重错误.
编译器先找到main函数,整个程序的入口.从main函数里面由上往下编译.
编译器一般预编译H头文件,如果定义是在子CPP里面就进行分布模块化编译.
一般一张CPP编译器这样认为"在这之前让我看得到,这是干什么用的"
比如cout就被定义在iostream里面,main函数被扩展前找不到cout的定义就会到头文件里面去找.
#3
lt22010040682012-04-23 14:47
回复 2楼 天使梦魔
谢谢了,我继续奋斗。
#4
lscalin2012-04-23 20:49
不是要先声明再使用吗? 楼主你的这个好像是没有先声明吧,
1