小编Lil*_*aru的帖子

如何*restrict/*__ restrict__在C/C++中有效吗?

这是我写的一些代码(使用GCC __restrict__对C++ 的扩展):

#include <iostream>

using namespace std;

int main(void) {
    int i = 7;
    int *__restrict__ a = &i;
    *a = 5;
    int *b = &i, *c = &i;
    *b = 8;
    *c = 9;

    cout << **&a << endl; // *a - which prints 9 in this case

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

或者,C版本(如果C++版本由于使用了每个流行的C++编译器支持的扩展而不清楚),使用GCC:

#include <stdio.h>

int main(void) {
    int i = 7;
    int *restrict a = &i;
    *a = 5;
    int *b = &i, *c = &i;
    *b …
Run Code Online (Sandbox Code Playgroud)

c c++

7
推荐指数
1
解决办法
5857
查看次数

Qt:将数字转换为QString,QVariant或QString :: number更好

我只是好奇.比方说,我需要在控制台中输出一个数字.

代码是:

#include <QDebug>
#include <QVariant>
#include <QString>

void displayNumber(quint8 number) {
    qDebug() << QVariant(number).toString();
    qDebug() << QString::number(number);
//or for example 
//  QLabel label; 
//  label.setText(QString::number(number));
//or 
//  label.setText(QVariant(number).toString());
}
Run Code Online (Sandbox Code Playgroud)

哪个性能会更好?我认为内存消耗也不同.QVariant(number).toString()意味着它将QVariant存储在堆栈中.不确定QString :: number(),它不应该只是调用函数(当然,函数有一个QString返回所以它也被分配在堆栈上并占用该空间并且该操作被分配和取消分配)?无论如何,sizeof()为QVariant提供了16个字节,为QString提供了4个字节.

c++ qt

6
推荐指数
1
解决办法
2409
查看次数

XMPP/Jabber:对于自定义消息,我需要修改客户端还是服务器?

我正在写一个IM,我想实现一些不在标准中的功能,我想要一些自定义功能.
我想知道我是否可以使用Google的XMPP服务(Google Talk)并制作一个自定义IM客户端来实现默认功能,以便能够与服务器通信,并且可能有一种方法可以在XML中添加一些自定义标签Google的服务器将使用并将消息发送给我的其他客户端,该客户端可以解释此XML并显示并执行正确的操作吗?

或者我是否必须在服务器上实现此功能?例如,Openfire支持插件,您可以使用插件扩展它,但我真的更愿意避免使用我自己的服务器并使用Google帐户和服务器.我只是一名学生,我没有资源维护我自己的服务器.

另外,我真的不明白使用什么" Jabber组件协议 ".根据我的阅读,我明白它可以解决我的问题但它必须在服务器上.它不在XMPP服务器中,但它也必须作为服务器工作并与XMPP服务器连接.
我不认为我可以在谷歌的XMPP服务器上使用" Jabber组件协议 ",或者我可以吗?

xmpp openfire google-talk

5
推荐指数
1
解决办法
1666
查看次数

标签 统计

c++ ×2

c ×1

google-talk ×1

openfire ×1

qt ×1

xmpp ×1