是 C 还是 C++?

2023-11-24

我需要在 .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(使用前将#替换为@)

是 C 还是 C++? 的相关文章

随机推荐

  • UIButton 作为 UINavigationbar 按钮

    我有一个标签栏应用程序 在其中一个选项卡栏中我有一个导航控制器 我正在尝试设置一个带有图像的 UIButton 作为导航栏的右侧按钮 UIButton refreshButton UIButton alloc init refreshBut
  • QComboBox 的 setPlaceholderText [重复]

    这个问题在这里已经有答案了 如果没有子类化 我可以在 QComboBox 文本中显示未进行选择的文本 例如 QLineEdit 中的 setPlaceholderText 吗 QComboBox 没有占位符文本选项 但您可以通过两种方式实现
  • 是否可以将两个调试器附加到一个进程?

    是否可以将两个调试器附加到一个进程 最近 我用 HTML5 CSS 开发了一个 Metro 风格应用程序 它调用了用 C 编写的 Window 运行时组件 我想做的是将两个调试器附加到同一个进程 一个用于 JavaScript 另一个用于
  • 刷新页面时 Socket IO 建立多个连接 - Node JS

    我开发了一个抓取工具 可以从所有网站抓取作业并将其保存到数据库中 我已经制作了自己的默认日志 在其中获取消息 错误 信息 等 我正在使用 socket io 来实时更新我的 视图以及数据库 问题是当我启动应用程序时 它完美地建立了套接字和数
  • 理想的 terraform 工作空间项目结构

    我想设置 Terraform 来管理开发 阶段 产品环境 所有环境中的基础设施都是相同的 但每个环境中的变量都存在差异 既然 Terraform 0 10 中引入了工作区 那么理想的 Terraform 项目结构是什么样的 在命名 标记基础
  • PKCS5_PBKDF2_HMAC_SHA1返回值是什么意思?

    我正在尝试使用 OpenSSLPKCS5 PBKDF2 HMAC SHA1方法 我推测如果成功则返回 0 否则返回一些其他值 我的问题是 非零返回值是什么意思 内存错误 使用错误 我的程序应该如何处理它 重试 退出 编辑 一个必然的问题是
  • Android 上的鱿鱼:最大继承深度

    这是我的设置 声纳Qube 5 6 6 SonarJava插件4 8 0 9441 Code public class BaseActivity extends android app Activity public class FooAc
  • Pandas MultiIndex DataFrame.rolling 偏移量

    为什么我不能使用偏移量rolling多索引数据框 例如 与 rng pd date range 2017 01 03 periods 20 freq 8D i pd MultiIndex from product A B C rng nam
  • 优先考虑组合而不是继承[重复]

    这个问题在这里已经有答案了 优先考虑组合而不是继承 是非常流行的短语 我读了几篇文章 每篇文章最后都说 当类之间存在纯粹的 IS A 关系时 请使用继承 一个例子来自本文 这里之间Apple and Fruit存在明显的 IS A 关系 即
  • 如何告诉 Vite 从构建中排除目录中的文件子集?

    我使用创建了一个新的 Vue 应用程序npm create vue 在运行时 该应用程序会获取配置并从中读取字符串 该字符串表示要在应用程序内呈现的组件的名称 这些动态组件位于 可插入 目录中 src App vue pluggables
  • Cholesky 分解 ScaLapack 错误

    我收到以下错误 但我不知道为什么 1 1 On entry to PDPOTRF parameter number 2 had an illegal value 1 0 On entry to PDPOTRF parameter numbe
  • 具有依赖关系的静态库

    e exe与我的自定义静态库链接 c lib 它使用 Win32 API 中定义的w dll w dll位于C Windows System32 其导入库为w lib 位于 Windows SDK 目录中 壳w lib被列为额外的依赖 in
  • VS2022 17.2.0 Preview 2.0:访问项目等时出现T4模板序列化异常

    使用VS2022 17 2 0 Preview 2 0使用T4模板生成数据层 T4的一部分使用VS互操作 DTE来访问解决方案中的项目 下面的T4是一个测试 lt template debug false hostspecific true
  • 如何可视化 d3 力导向图布局中的节点组

    我正在寻找一种将组插入到我的力导向图形可视化中的方法 到目前为止我已经找到了三个相关的例子 Cola js这将需要添加另一个库 并可能需要改造我的代码以适应这个不同的库 这个街区 这很难解开 这张幻灯片来自 mbostock 的幻灯片 这不
  • Meteor:服务器端调试

    有谁知道调试服务器端代码的好方法 我尝试启用 Node js 调试 然后使用 node inspector 但它没有显示我的任何代码 我最终使用了 console log 但这非常低效 更新 我发现以下过程在我的 Linux 机器上有效 当
  • 从 Java 调用 python 模块

    我想使用 PythonInterpreter 从 Java 调用 python 模块中的函数 这是我的 Java 代码 PythonInterpreter interpreter new PythonInterpreter interpre
  • 默认情况下具有数学集合相等的集合类[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 HashSet不将设置相等语义用于默认相等操作 var a new HashSet
  • 用于编辑页眉和页脚的 WORD 2010 宏

    我只有基本的 VBA 经验 之前的宏经验主要是使用 WORD 2003 录制宏用于获取 GoToFooter 或编辑页脚 菜单命令并允许后续编辑 在 WORD 2010 中 此命令 以及许多其他命令 不会 记录 到宏 但在记录模式下 我确实
  • 为什么这个径向渐变没有完成圆?

    我正在尝试使用径向渐变在作为单选按钮的圆形元素内创建边框 基本的 CSS 如下所示 我不明白为什么红色渐变不围绕圆圈的整个圆周 当白色色标接近 100 时 顶部 右侧 左侧和底部会出现红色间隙 为什么会发生这种情况 以及如何在仍然使用径向渐
  • 是 C 还是 C++?

    我需要在 cpp c 源文件中使用自然对数函数 现在 我当然可以通过快速的谷歌搜索和简单的库解决方案来做到这一点 但我有点困惑 在cplusplus dot com网站的reference cmath log 下有一个如何使用日志功能的示例