这句话是什么//! [数字]是什么意思?

时间:2013-04-16 08:03:34

标签: c++

我已经看到在许多项目中,一些程序员在他们的代码中使用//! [1]//! [2],...,//! [n],但我不知道这可能意味着什么。

如果有人指出使用这些评论,我将不胜感激。 这是一个狙击码:

BlockingClient::BlockingClient(QWidget *parent)
    : QWidget(parent)
{
    hostLabel = new QLabel(tr("&Server name:"));
    portLabel = new QLabel(tr("S&erver port:"));


    QString ipAddress;
    QList<QHostAddress> ipAddressesList = QNetworkInterface::allAddresses();
    // use the first non-localhost IPv4 address
    for (int i = 0; i < ipAddressesList.size(); ++i) {
    }
    // if we did not find one, use IPv4 localhost
    if (ipAddress.isEmpty())
        ipAddress = QHostAddress(QHostAddress::LocalHost).toString();

    //...
    connect(hostLineEdit, SIGNAL(textChanged(QString)),
            this, SLOT(enableGetFortuneButton()));
    connect(portLineEdit, SIGNAL(textChanged(QString)),
            this, SLOT(enableGetFortuneButton()));
//! [0]
    connect(&thread, SIGNAL(newFortune(QString)),
            this, SLOT(showFortune(QString)));
//! [0] //! [1]
    connect(&thread, SIGNAL(error(int,QString)),
            this, SLOT(displayError(int,QString)));
//! [1]

    QGridLayout *mainLayout = new QGridLayout;
    mainLayout->addWidget(hostLabel, 0, 0);
    setLayout(mainLayout);

    setWindowTitle(tr("Blocking Fortune Client"));
    portLineEdit->setFocus();
}

//! [2]
void BlockingClient::requestNewFortune()
{

    getFortuneButton->setEnabled(false);
    thread.requestNewFortune(hostLineEdit->text(),
                             portLineEdit->text().toInt());
}
//! [2]

//! [3]
void BlockingClient::showFortune(const QString &nextFortune)
{
    if (nextFortune == currentFortune) {
        requestNewFortune();
        return;
    }
//! [3]

//! [4]
    currentFortune = nextFortune;
    statusLabel->setText(currentFortune);
    getFortuneButton->setEnabled(true);
}
//! [4]

2 个答案:

答案 0 :(得分:8)

我只是猜测,因为你没有显示更完整的代码(或者在这种情况下更完整的评论)。

Doxygen是一个文档生成器,可解析特定格式的代码声明和注释。如果您阅读this part of the manual,您会看到它将//!识别为包含文档的特殊注释。 Doxygen支持markdown,它在方括号内有链接。

所以这与实际代码无关,除了帮助记录它。并且它肯定不是编译器将尝试为其生成代码的声明。

答案 1 :(得分:1)

这些只是评论。它们在C或C ++中没有特殊含义。它们可能在某些其他环境中具有某些特殊含义,或者它们可能仅仅是该项目的评论惯例。