当前位置:  技术问答>linux和unix

有返回值的函数,却没有return语句,这种情况下有没有标准语义?

    来源: 互联网  发布时间:2017-02-02

    本文导语:  比如: bool fun() {     if (0)         return false; } int main() {     bool re = fun(); } 这个fun函数,在vc下面,肯定是有警告输出的,但用g++编译,却没有警告。如果这是一种标准语义,那么它是什么?如果不是...

比如:
bool fun()
{
    if (0)
        return false;
}

int main()
{
    bool re = fun();
}

这个fun函数,在vc下面,肯定是有警告输出的,但用g++编译,却没有警告。如果这是一种标准语义,那么它是什么?如果不是标准语义,为什么g++不报错或者警告?

|
不知道g++ 是怎么解释的,同求解

|
不太清楚。。。

|
曾经调试了一下午+一晚上最终发现这个BUG的路过,太TMD坑爹了。

|
用g++编译的时候你加上-Wall选项不就有了。
楼主来Linux/Unix社区问VC有g++么有的,莫非来T馆的。

|
if语句里面的条件判断不是在编译时就可以确定的。程序运行时才知道,是动态联编。

如果显示地在函数结尾加一条return;,会报错。最后面的这个return;是属于静态联编,编译器可以检查是否匹配,否则报错。

我是这么理解的。

bool fun()
{
if (0)
return false;
//return;
}

int main()
{
bool re = fun();
}
具体情形还要分析汇编代码。

    
 
 

您可能感兴趣的文章:

  • C++ Bitsets 成员 none():如果没有位被设置则返回true
  • linux串口读取read函数始终返回值为1,没有返回读到的字符数
  • C++ I/O 成员 good():如果没有出现过错误则返回true
  • 请问gcc有没有类似GetExitCodeProcess的函数,可以获得调用的外部程序的返回值呢?
  • jsp中有没有将当前日期加1天返回的类或函数?
  • system()函数返回值0,但却没有执行成功?
  • 我在ie里输入一个链接,可以得到正确的返回。在linux下的lynx就不行了。有没有别的办法?
  • select没有返回?
  • solaris 8 下有没有返回系统总物理内存和当前所使用内存大小的函数。(不是top,vmstat命令)
  • 我的理解有没有错,overrriding是参数必须不同,其它的必须相同,而overloading是参数不同外,存取操作符和返回类型可以不同,
  • 操作系统 iis7站长之家
  • JDBC有没有只返回某一字段排在前面的几条记录的功能
  • 查询数据库,如果没有结果,返回的是什么数据 (紧急)
  • select立刻返回0,errno=0,根本没有等到超时的情况,为何
  • 嵌入式中,利用C语言操作SQLite数据库,查询没有数据返回,请大家帮忙看看哈
  • accept函数没有返回
  • 非阻塞方式socket中, 去读select返回的sockfd是否一定是非0值??如果读到的字节数比期望少有没有什么好的处理模式??
  • 自己写的ping程序为什么没有数据返回
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Bitsets 成员 any():如果有任何一个位被设置就返回true
  • 如果用类作返回值,在JAVA中返回的是地址还是要返回的类的一个拷贝???
  • C++ Double Ended Queues(双向队列) 成员 empty():返回真如果双向队列为空
  • 请问在脚本里怎么得到一个程序运行的返回值,脚本怎么返回值?
  • C++ I/O 成员 bad():如果出现错误则返回true
  • linux c编程:怎么从键盘只读取一个字符就返回,不要回车后才返回
  • C++ I/O 成员 fail():如果出现错误则返回true
  • 在shell中,返回值为零表示成功,非零值为失败。 这个返回值存放在哪个变量中?
  • C++ Stacks(堆栈) 成员 empty():堆栈为空则返回真
  • system()函数返回什么值时,该函数执行成功?返回什么值时,执行出现错误?谢谢
  • C++ Maps 成员 empty():如果map为空则返回true
  • java 中 SOCKET 的ACCEPT函数有返回值吗?怎样返回才是正常的?
  • C++ Priority Queues(优先队列) 成员 empty():如果优先队列为空,则返回真
  • 当close(socket)时,为什么linux下slect不返回而windows下就返回??????????
  • C++ Strings(字符串) 成员 empty():如果字符串为空,返回真
  • 公司要给客户做报表,从数据库返回数据,他们死活要返回的格式为Excel格式,请问我怎样才能把数据库返回的数据存为Excel的格式?
  • C++ MultiMaps 成员 empty():如果multimap为空则返回真
  • 为什么一个ejb的bean中的一个方法在返回一个ResultSet时报错,如何返回一个结果集
  • C++ Queues(队列) 成员 empty():如果队列空则返回真
  • socket的close是立刻返回,还是等四路握手过程完成再返回
  • C++ Strings(字符串) 成员 length():返回字符串的长度
  • 我不理解的是,既然是一个字符串,可为什么不直接返回return (String) ob,而是要返回一个String[]?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3