f(void) {char a = 0; double d = 0; if(a == ‘a‘) { return &a; } else { return d; } } int main() { int i = 0; double d = 0; double *pd = &d; f(i, pd); return 0; }
纯C实现中进行编译,会给出警告,但是默认会编译通过(很多编译器能通过设置把警告当做错误的情况除外)。但是C++中给出编译错误。vs2015带的编译器给出如下错误信息:
原文:https://www.cnblogs.com/zfwxkd/p/11980233.html