C中的+ +和+之间的区别?

Meg*_*ron 2 c

我有一个问题,

/ +和just +有什么区别?

在我的程序中,我有这行代码

md_addr_t GSharePC = PC >> (PC_ZERO_BITS/* + (int)log2(Tournament_Counters)*/) & (Tournmanet_GShare_PHT_Entries - 1);
Run Code Online (Sandbox Code Playgroud)

然而,当我去取消注释它时,我意外地离开了第一个/ in

md_addr_t GSharePC = PC >> (PC_ZERO_BITS/ + (int)log2(Tournament_Counters)) & (Tournmanet_GShare_PHT_Entries - 1);
Run Code Online (Sandbox Code Playgroud)

应该是公正的

md_addr_t GSharePC = PC >> (PC_ZERO_BITS + (int)log2(Tournament_Counters)) & (Tournmanet_GShare_PHT_Entries - 1);
Run Code Online (Sandbox Code Playgroud)

做/ +和/有什么区别?它真的分裂然后添加?如果是这样的话,它究竟是什么划分?任何清晰度将不胜感激.我很感兴趣,因为使用/ +实际上为我运行的程序生成了更好的结果然后只是+做了.

SLa*_*aks 7

+ 既是二元运算符(加法)又是一元运算符(与否定相反).

你的第二行解析为

(PC_ZERO_BITS / (+(int)log2(Tournament_Counters))) & (Tournmanet_GShare_PHT_Entries - 1)
Run Code Online (Sandbox Code Playgroud)