首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类TC_JOIN (名称) {}

类TC_JOIN (名称) {}
EN

Stack Overflow用户
提问于 2021-07-13 17:52:18
回答 1查看 34关注 0票数 0

我发现了下面的代码这里

代码语言:javascript
复制
class Cipher {
...
};

#define TC_TRIAL(NAME, BLOCK_SIZE, KEY_SIZE) \
class TC_JOIN (Cipher,NAME) : public Cipher  { \
...\
}

TC_CIPHER (AES, 16, 32);

我知道这是一个宏,(NAME, BLOCK_SIZE, KEY_SIZE)是额外的参数,但是在预处理器替换替换列表中任何相应的参数之后,我们应该得到这样的信息,我想:

代码语言:javascript
复制
class TC_JOIN (Cipher,AES) : public Cipher  {
...
}

TC_JOIN (Cipher,AES)稍微让我感到困惑(特别是添加括号部分)。你能不能向我解释一下这个句法结构到底是什么意思?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-13 17:57:55

TC_JOINVeraCrypt/src/PlatformBase.h中定义

代码语言:javascript
复制
#define TC_JOIN_ARGS(a,b) a##b
#define TC_JOIN(a,b) TC_JOIN_ARGS(a,b)

它连接这两个参数。

当您不确定符号的含义时,请搜索它的定义。我看到Cipher.h (引用的标题)包括Crypto/config.hPlatform/Platform.h。当我意识到Platform.h是一个只包含大量其他标头的头时,我放弃了该路由,使用github搜索来查找所有出现的TC_JOIN。其中一个是#define TC_JOIN ...。这就对了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68367258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档