本文主要是介绍Qt中QByteArray类数组data,若执行write(data.constdata),测试发现会在数组中“0x00”值处出现断针,0x00值无法发送【已解决】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
比如对于:
QByteArray data;
data.resize(5);
data[0]=0x01;
data[1]=0x02;
data[2]=0x03;
data[3]=0x00;
data[4]=0x04;
1、选中write()函数,点击“F2”查找发现无论网口还是串口,调用的write()函数都源自QIODevice类,如下所示,省略其他;
class Q_CORE_EXPORT QIODevice
#ifndef QT_NO_QOBJECT
: public QObject
#endif
{
qint64 write(const char *data, qint64 len);///<<<<--1
qint64 write(const char *data);///<<<<--2
inline qint64 write(const QByteArray &data)///<<<<--3
{ return write(data.constData(), data.size()); }
2、write()函数共有三个重载,若执行write(data)、write(data,5)、write(data.constdata,data.size())、或write(data.constdata,data.length())可正常发送,若执行write(data.constdata)则会在data[3]处出现断针,只将data[0]、data[1]、data[2]成功发送,尚未查到为何会出现这种现象。
鄙人愚见、请多指教。
这篇关于Qt中QByteArray类数组data,若执行write(data.constdata),测试发现会在数组中“0x00”值处出现断针,0x00值无法发送【已解决】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!