这是方法声明和方法主体之间的分号吗?

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 并用长度初始化它。

以下代码块与该变量定义无关。以下代码位于单独代码块内的唯一原因是创建一个更受约束的范围:该块内的变量在该范围的末尾超出范围(及其析构函数 运行),而不是在包含函数的结尾。