1、<cmath>和“math.h”
写个函数输出根号2的值:
#include <iostream>
#include <cmath>
using std::cout;
using std::sqrt;//错误,去掉后运行正常
int main(){
cout<<sqrt(4);
return 0;
}
修改后:
2Press any key to continue
问题在哪里?
cmath不过是C++将C的math.h函数库包装成C++喜欢的模样,看代码:
// cmath standard header
#if _MSC_VER > 1000
#pragma once
#endif
#ifndef _CMATH_
#define _CMATH_
#ifdef _STD_USING
#undef _STD_USING
#include <math.h>//
#define _STD_USING
#else
#include <math.h>//
#endif /* _STD_USING */
#endif /* _CMATH_ */
/*
* Copyright (c) 1994 by P.J. Plauger. ALL RIGHTS RESERVED.
* Consult your license regarding permissions and restrictions.
*/
不是所有C++风格的#include <……>所引用来的库里面的函数都属于std名字空间
来个C风格的:
#include "math.h"
#include "stdio.h"
int main(){
printf("%f",sqrt(4));
return 0;
}
运行结果:
2.000000Press any key to continue