gpt4 book ai didi

c - 下面的代码是什么意思?

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

I met this question in a interview occassion, the man asked me what is the result if i compile and execute the following code, and why. I am curious about this question and i did not really got it.

When i typing gcc f1.c f2.c and then ./a.out, it outputs a weird number:1717986918 in my x64 PC, and then i add a line in f2.c: extern double get_val(); it outputs 5.

f1.c:

double get_val()
{
return 5.6;
}

f2.c:

#include<stdio.h>
//extern double get_val();
int main()
{
int a=get_val();
printf("%d\n", a);

return 0;
}

最佳答案

f2.c 中,在更改之前,没有 get_val 的声明。因此它默认假设该函数返回一个int。因为这与函数的实际返回类型不匹配,所以结果是 undefined behavior

当您添加声明时,函数的正确返回类型是已知的,因此代码可以按预期工作。

关于c - 下面的代码是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39781141/

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