Romeon0 Asked:2020-09-11 04:51:29 +0000 UTC2020-09-11 04:51:29 +0000 UTC 2020-09-11 04:51:29 +0000 UTC ## 登录C语言 772 查看 BlowFish 算法时,我发现了这一行: #define S(x,i) (SBoxes[i][x.w.byte##i]) 什么##? c 2 个回答 Voted Best Answer Maxim Timakov 2020-09-11T05:00:05Z2020-09-11T05:00:05Z 这是一个字符串连接。 在这种情况下,宏参数的值被“粘”到byte var假设使用参数和调用宏1,则 S(var, 1) 将被预处理器替换为 (SBoxes[1][var.w.byte1]) 一个挑战 S(var, str) 在 (SBoxes[str][var.w.bytestr]) 等等 VladD 2020-09-11T04:59:37Z2020-09-11T04:59:37Z 这是令牌粘贴,在预处理器级别合并令牌。 例如,它将S(field,5)扩展为(SBoxes[5][field.w.byte5]). 文档: MSDN GNU 海湾合作委员会 偏好设置
这是一个字符串连接。
在这种情况下,宏参数的值被“粘”到
bytevar假设使用参数和调用宏1,则将被预处理器替换为
一个挑战
在
等等
这是令牌粘贴,在预处理器级别合并令牌。
例如,它将
S(field,5)扩展为(SBoxes[5][field.w.byte5]).文档: