我需要在 .cpp (c++) 源文件中使用自然对数函数。现在,我当然可以通过快速的谷歌搜索和简单的库解决方案来做到这一点。但我有点困惑...
在cplusplus dot com网站的reference/cmath/log/下有一个如何使用日志功能的示例,如下
/* log example */
#include <stdio.h> /* printf */
#include <math.h> /* log */
int main ()
{
double param, result;
param = 5.5;
result = log (param);
printf ("log(%f) = %f\n", param, result );
return 0;
}
我有一些问题:
1)他们为什么使用
<stdio.h>
我认为这是针对 C 而不是真正针对 C++ 的?
2)他们为什么使用
<math.h>
我虽然 .h 代表 C 头文件而不是 .hpp C++ 头文件?
忘记了 stdio 的使用(无论如何我都会使用 iostream),但即使如此,通过使用
<math.h>
感觉就像我在写 C 代码而不是 C++ 代码。我通过教学课程学习 C++,讲师在第一周介绍了 C,然后说我们不会再使用 C,但从现在开始将使用 C++。我觉得如果老师问“你为什么使用C头文件?你应该在C++中工作”,我将无法解释自己。
非常感谢任何解释。
<math.h>
是C标准中指定的头文件。它的用法在 C++ 中受支持,但已被所有 C++ 标准正式弃用(这大约意味着可能会从未来的标准中删除)。我建议它不太可能从未来的 C++ 标准中删除,只要向后兼容 C 被认为是重要的或可取的。
<cmath>
是 C++ 标准中指定的标头。它提供了与 C 语言基本相同的功能<math.h>
,除了名称(除了几个宏之外)驻留在命名空间中std
.
类似的故事也发生在<stdio.h>
(三)和<cstdio>
(C++),除了流 I/O 的使用(例如<iostream>
) 在 C++ 中受到鼓励。
标准 C++ 头文件从来没有.hpp
扩大。标头的命名约定是一些人鼓励的约定,但不是正式要求的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)