Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在不包含标准库的情况下,atoi()函数如何工作?_C - Fatal编程技术网

C 在不包含标准库的情况下,atoi()函数如何工作?

C 在不包含标准库的情况下,atoi()函数如何工作?,c,C,我正在使用atoi()函数,我知道它是stdlib.h的一部分。 那么,当我没有包含所需的头文件时,为什么下面的代码工作正常 #define _CRT_SECURE_NO_wARNINGS #include <stdio.h> int main() { char y[10] = "1234"; int z = atoi(y); printf("%d\n", z); return 0; } \define\u CRT\u SECURE\u NO\u警

我正在使用
atoi()
函数,我知道它是
stdlib.h
的一部分。 那么,当我没有包含所需的头文件时,为什么下面的代码工作正常

#define _CRT_SECURE_NO_wARNINGS
#include <stdio.h>
int main()
{

    char y[10] = "1234";
    int z = atoi(y);
    printf("%d\n", z);
    return 0;
}
\define\u CRT\u SECURE\u NO\u警告
#包括
int main()
{
字符y[10]=“1234”;
intz=atoi(y);
printf(“%d\n”,z);
返回0;
}

如果编译器检测到一个正在使用的函数,而不是原型函数,那么它将假定
int
作为返回值。Lucky
atoi()
返回
int
,因此默认情况下链接标准库时,链接器成功解析符号
atoi()

如果您在编译器日志中发出警告(gcc的选项
-Wall-Wextras-pedantic
),它会通知您缺少
atoi()的原型


顺便说一句:应该是

int main(void)
至少。

我想你会找到答案的