gpt4 book ai didi

c++ - std::strtol 的签名

转载 作者:可可西里 更新时间:2023-11-01 18:28:02 27 4
gpt4 key购买 nike

std::strtol 的签名公式如下:

long strtol(const char *str, char **str_end, int base);

我实际上希望第二个参数是 const char** 类型。关于为什么它是 char** 类型的任何解释?请注意,可以修改 const char** 类型的变量。您不能修改的是 char* const * 变量。

最佳答案

在过去(C90 之前)C 没有const 的概念,一切都使用普通的char*

由于 char* 可以隐式转换为 char const* 更改大多数库函数的签名以支持 const 不太好很大的问题。 char** 但是不能转换为 char const**,请参阅 C++ 标准中的以下注释了解原因

enter image description here

由于 C 不支持重载,委员会不得不在破坏遗留代码和强制所有人传递 char** 之间做出选择。两者都不理想,但看起来他们选择了后者。

关于c++ - std::strtol 的签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34328046/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com