includeと宣言の違いはなんですか
例えば下の文で、
#include<iostream>
#include<cmath>
float Myabs(float x);
int main(){
float a=2.5;
std::cout<<Myabs(a)<<std::abs(a);
a=-5.25;
std::cout<<Myabs(a)<<std::abs(a);
return 0;
}
float Myabs(float x){return x>0?x:-x;}
この文を下の2つの例のように変更すると
例1
#include<iostream>
float Myabs(float x);
int main(){
float a=2.5;
std::cout<<Myabs(a)<<std::abs(a);
a=-5.25;
std::cout<<Myabs(a)<<std::abs(a);
return 0;
}
#include<cmath>
float Myabs(float x){return x>0?x:-x;}
例2
#include<iostream>
#include<cmath>
int main(){
float a=2.5;
std::cout<<Myabs(a)<<std::abs(a);
a=-5.25;
std::cout<<Myabs(a)<<std::abs(a);
return 0;
}
float Myabs(float x);
float Myabs(float x){return x>0?x:-x;}
どちらもエラーが出ます。宣言が無いために出るエラーとインクルードが無いために出るエラーです。
これは、コンパイラから見てinclude文と宣言が同じ動作をすることを示していますか?