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
作为返回值。Luckyatoi()
返回int
,因此默认情况下链接标准库时,链接器成功解析符号atoi()
如果您在编译器日志中发出警告(gcc的选项-Wall-Wextras-pedantic
),它会通知您缺少atoi()的原型
顺便说一句:应该是
int main(void)
至少。我想你会找到答案的