这是方法声明和方法主体之间的分号吗?
Is this a semicolon between a method declaration and the method body?
我用 C 和 C++ 编程多年(我现在使用 C#),我 运行 进入以下 C++ 代码:
std::vector<BYTE> authTag(authTagLengths.dwMinLength);
{
BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO authInfo;
BCRYPT_INIT_AUTH_MODE_INFO(authInfo);
authInfo.pbNonce = (PUCHAR)&origNonce[0];
authInfo.cbNonce = origNonce.size();
authInfo.pbTag = &authTag[0];
authInfo.cbTag = authTag.size();
bcryptResult = BCryptEncrypt
(
keyHandle,
&encrypted[0],
encrypted.size(),
&authInfo,
NULL,
NULL,
&encrypted[0], encrypted.size(),
&bytesDone, 0
);
std::cout << "Encrypted Data" << std::endl;
for (auto val : encrypted)
{
std::cout << std::hex << (0xFF & val) << std::endl;
}
}
我不确定我在看什么。 authTag
似乎是一种方法。但是它后面跟着一个分号,然后是一个方法体。
我从未在方法声明和方法体之间看到过分号。有人可以解释一下我在这里看到的是什么吗?
这都在一个函数里面,对吧?
第一行定义了一个 std::vector<BYTE>
类型的变量 authTag
并用长度初始化它。
以下代码块与该变量定义无关。以下代码位于单独代码块内的唯一原因是创建一个更受约束的范围:该块内的变量在该范围的末尾超出范围(及其析构函数 运行),而不是在包含函数的结尾。
我用 C 和 C++ 编程多年(我现在使用 C#),我 运行 进入以下 C++ 代码:
std::vector<BYTE> authTag(authTagLengths.dwMinLength);
{
BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO authInfo;
BCRYPT_INIT_AUTH_MODE_INFO(authInfo);
authInfo.pbNonce = (PUCHAR)&origNonce[0];
authInfo.cbNonce = origNonce.size();
authInfo.pbTag = &authTag[0];
authInfo.cbTag = authTag.size();
bcryptResult = BCryptEncrypt
(
keyHandle,
&encrypted[0],
encrypted.size(),
&authInfo,
NULL,
NULL,
&encrypted[0], encrypted.size(),
&bytesDone, 0
);
std::cout << "Encrypted Data" << std::endl;
for (auto val : encrypted)
{
std::cout << std::hex << (0xFF & val) << std::endl;
}
}
我不确定我在看什么。 authTag
似乎是一种方法。但是它后面跟着一个分号,然后是一个方法体。
我从未在方法声明和方法体之间看到过分号。有人可以解释一下我在这里看到的是什么吗?
这都在一个函数里面,对吧?
第一行定义了一个 std::vector<BYTE>
类型的变量 authTag
并用长度初始化它。
以下代码块与该变量定义无关。以下代码位于单独代码块内的唯一原因是创建一个更受约束的范围:该块内的变量在该范围的末尾超出范围(及其析构函数 运行),而不是在包含函数的结尾。