gpt4 book ai didi

我可以更改 C 中的默认返回类型 int 吗?

转载 作者:行者123 更新时间:2023-11-30 21:42:29 24 4
gpt4 key购买 nike

有什么办法可以改变64位机器中int的位宽吗?

在64位机器上,int是32位,long是64位。

接下来的程序将核心,因为getenv函数默认返回int。但 char* 是 64 位的。我想更改 int 位宽,或者将默认返回类型更改为 long:

#include <stdio.h>

int main(){
printf(getenv("HOME"));
}

最佳答案

because the getenv function default returns int

事实并非如此。这是一个 C 标准 lib 函数,定义为 (C11 7.22.4.6):

#include <stdlib.h>
char *getenv(const char *name);

但是,如果您使用旧的、过时的 C 编译器编译代码并且无法包含 stdlib.h ,返回类型默认为int 。这是C语言的一个设计错误,18年前就被修复了。

所以你会得到 getenv 的唯一原因返回int如果您的程序中有错误,因为您未能包含相关 header stdlib.h 并且您正在使用旧的、过时的编译器。

通过添加 #include <stdlib.h> 来修复此问题然后还要确保您使用的是现代编译器1)

<小时/>

1) 早于 5.x 的 gcc 版本默认为旧的、过时的非标准 -std=gnu90 。如果您使用旧版本的 gcc,则必须使用以下选项之一进行编译: -std=c11 (如果支持则首选)或 -std=c99 .

关于我可以更改 C 中的默认返回类型 int 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47346012/

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