大佬教程收集整理的这篇文章主要介绍了GCC 是否推断函数的返回语句?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚遇到了一个非常奇怪的与 GCC 和 C 的交互,如果没有 -Wall,我就不会发现这种交互:
@Directive({
SELEctor: '[color-getter]'
})
export class colorGetter {
constructor(public el: ElementRef) {}
ngOnChanges() {
setTimeout(() => {
console.log(this.el.nativeElement.style.color);
})
}
ngAfterVIEwInit() {
console.log(this.el.nativeElement.style.color);
}
}
如您所见,尽管返回类型承诺指向我的结构体,但 test_R_42_11845@ake 不会返回任何内容。
使用 gcc 编译(没有警告)导致没有抱怨:
// infer.c
#include <stdio.h>
#include <stdlib.h>
typedef struct Test {
int dummy;
} Test;
Test* test_R_42_11845@ake() {
Test *ret = malloc(sizeof(Test));
ret->dummy = 1;
// return nothing
}
int main() {
Test* t = test_R_42_11845@ake();
printf("%i\n",t->dummy);
}
运行程序会产生预期的行为:
gcc -o infer infer.c
我对我的程序如何成功运行感到困惑。如果没有明确的 return 语句,GCC 是否会推断函数的返回类型?
./infer
1
用 -Wall 编译清楚地发现有什么事情发生了,但是 GCC 是如何让这个程序成功编译(更不用说运行)的了?
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的GCC 是否推断函数的返回语句?全部内容,希望文章能够帮你解决GCC 是否推断函数的返回语句?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。