繁体   English   中英

'return false'不会从函数返回

[英]'return false' doesn't return from function

А正在为在Linux下运行的基于ARM的机器人实现tcp-connection C ++包装器。
这是我的代码:

bool tcp_connection::wait_connection(int port)
{
  is_server = true;

  if (!create_socket())
    return false;

  local_addr.sin_port = htons(port);
  const int result = bind(sockfd, (struct sockaddr *) &local_addr, sizeof(local_addr));
  if (result < 0)
  {
    std::cout << "tcp_connection.cpp: Error on binding '" << strerror(errno) << "'" << std::endl;
    std::cout << "return false" << std::endl;
    return false;
    std::cout << "after return false???" << std::endl;
  }

  std::cout << "listening...." << std::endl;
  .....
  return true;
}

这是我的输出:

tcp_connection.cpp: Error on binding 'Address already in use'
return false
listening....

怎么会发生?

它正在回归。 如果不是,您的输出将是:

tcp_connection.cpp: Error on binding 'Address already in use'
return false
after return false???
listening....

wait_connection() listening... print可能来自对wait_connection()的后续调用,其中不执行if (result < 0)分支。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM