qDebug()会影响程序执行的结果


int ICOperator::ICStarts( const char *port )
{
if ( NULL == OpenReader) { qDebug() << ""; }
this->devNo = this->OpenReader( 0, sPort );
return this->devNo;
}

正如函数所示,qDebug((实际上并没有执行,但程序将崩溃,如果注释如下:

int ICOperator::ICStarts( const char *port )
{
//  if ( NULL == OpenReader) { qDebug() << ""; }
this->devNo = this->OpenReader( 0, sPort );
return this->devNo;
}

qDebug((中发生了什么?可能存在堆栈错误?

你的应用程序崩溃不是因为你在使用调试,而是因为你的逻辑没有避免使用无效指针。

如果OpenReader为NULL,则这是无效的OpenReader( 0, sPort )

int ICOperator::ICStarts( const char *port )
{
if ( NULL == OpenReader)
{ 
qDebug() << "Invalid OpenReader";
return -1; 
}
this->devNo = this->OpenReader( 0, sPort );
return this->devNo;
}

相关内容

  • 没有找到相关文章

最新更新