gpt4 book ai didi

c++ - 为什么Xcode的默认代码生成错误?

转载 作者:行者123 更新时间:2023-12-03 07:21:53 25 4
gpt4 key购买 nike

当我使用Xcode创建C++项目时,我将获得由Xcode生成的代码,如下所示:

int main(int argc, const char * argv[]) {
...
}
但是,当我使用 getopt(argc, argv, nullptr)中定义的 <unistd.h>时,代码甚至无法通过编译。
问题的原因是参数无效,因此Xcode为什么不生成像 char * const argv[]这样的代码,这至少可以通过编译阶段。
Xcode's build failed information

最佳答案

你是对的;对于苹果公司而言,这是一个错误的决定。
尽管通常不赞成直接修改argv的元素,但是它并不是天生的“错误”,实际上,某些功能(例如getopt)有望实现。在默认代码模板中添加const ness不仅可以解决此问题,而且还违反了the standard's guidelines:

An implementation shall allow both

  • a function of () returning int and
  • a function of ( int, pointer to pointer to char ) returning int
    as the type of main ([dcl.fct]).

(不过请注意,本文并未声称这些是 main的唯一有效类型。)
我个人更希望Xcode不这样做。也许建议通过 Radar进行改进会有所帮助。

关于c++ - 为什么Xcode的默认代码生成错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64874824/

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