gpt4 book ai didi

c - c 中的主要参数和函数

转载 作者:行者123 更新时间:2023-11-30 20:27:33 27 4
gpt4 key购买 nike

#include <stdio.h>

int multiply(int n){

int doenstwork = n * 2;

return doesntwork;
}

int main(int argc, char *argv[]){

int n;

n = atoi(argv[1]);

return multiply(n);

}

我编译了,但是当我用参数运行它时,我什么也没看到。使用 gcc -std=c99 filename.c -g 编译它。

最佳答案

使用问题中更新的代码,您会遇到几个问题:

  1. 您有一个拼写错误:您声明了一个变量 doenstwork ,但随后您尝试引用 doesntwork .

  2. 既然你说你能够编译并运行你的程序,那么你发布的显然与你实际运行的不一样。 始终复制并粘贴您的确切代码。如果你重新输入它,你会犯这样的错误,而我们这些试图帮助你的人无法区分你在问题中输入代码时所犯的错误和你所输入的代码中实际存在的错误。编译并运行。

  3. main 返回的值是程序的状态,而不是其输出。在类 Unix 系统上,该值的低 8 位以外的所有位都会被忽略,因此这不是程序返回详细信息的好方法。

改正拼写错误后,我就可以使用您的程序了:

$ gcc c.c -o c
$ ./c 7 ; echo $?
14

但它仅适用于小范围的值:

$ ./c 1000 ; echo $?
208

程序的状态用于指示它是成功还是失败,并且可能返回少量有关失败原因的信息。返回值0表示执行成功;返回EXIT_FAILURE (在 <stdlib.h> 中定义)表示失败。在类 Unix 系统上,通常是 EXIT_FAILURE == 1 ;有时,像 2 这样的值用于表示不同类型的故障。例如,grep如果找到匹配,则返回状态 0;如果未找到匹配,则返回 1;如果出现其他问题(例如格式错误的正则表达式或丢失文件),则返回 2。

要从程序中获取信息,最简单的方法是以文本形式将该信息打印到标准输出。您可以更换

return multiply(n);

printf("%d\n", multiply(n));

您可以添加 return 0;在那之后;从 C99 开始,这不是必需的,但明确地表达并不是一个坏主意。

关于c - c 中的主要参数和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18806541/

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