我已经看到在许多项目中,一些程序员在他们的代码中使用//! [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]
答案 0 :(得分:8)
我只是猜测,因为你没有显示更完整的代码(或者在这种情况下更完整的评论)。
Doxygen是一个文档生成器,可解析特定格式的代码声明和注释。如果您阅读this part of the manual,您会看到它将//!
识别为包含文档的特殊注释。 Doxygen支持markdown,它在方括号内有链接。
所以这与实际代码无关,除了帮助记录它。并且它肯定不是编译器将尝试为其生成代码的声明。
答案 1 :(得分:1)
这些只是评论。它们在C或C ++中没有特殊含义。它们可能在某些其他环境中具有某些特殊含义,或者它们可能仅仅是该项目的评论惯例。