c++ - 在 C++ 中,为什么我不必包含任何内容来使用 sqrt() 函数?

标签 c++ include sqrt cmath

我正在学习 C++。使用 g++ 版本 3.2.3 编译,“g++ hworld.cpp”:

double sqrt(double);
int main(){
    double x = sqrt(1515.15);
    return 0;
}

编译很好,但如果我们用“sqrtfoo”替换 sqrt,编译器会说 sqrtfoo 不能用作函数。我以为我必须包括 cmath,但我想不是吗?有人可以在任何包含之前解释我的程序可以访问什么吗?相比之下,gcc 不允许我这样做,说“对‘sqrt’的 undefined reference ”。谢谢。

最佳答案

您不需要包含 cmath,因为您的代码中已经有 sqrt 的原型(prototype),即第一行。

关于c++ - 在 C++ 中,为什么我不必包含任何内容来使用 sqrt() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12453079/

相关文章:

c++ - 将 DWORD_PTR 转换为类,反之亦然,无需 c 风格转换

c++ - 多个符号定义,但我只定义一次我的符号

c++ - CUDA9.2 及更高版本中模板默认参数 Unresolved external 函数错误

c++ - 使用 "extern"关键字而没有 #include "file.h"

c - 力、平方根和表格程序

c++ - `import` 和 `#include` 之间的区别? cpp20

使用 GCC 包含文件时编译失败

c++ - 使用类型特征时如何排列文件?

haskell - 我不明白 Haskell 中的数字转换

c++ - 在模板类中使用 sqrt() 函数时消除歧义