1
由於某種原因,我創建的值mod
在keygen
中變爲0,儘管在製作和運行keygen後是正確的。我不明白爲什麼。誰能告訴我?值無理由變爲0
class RC5{
private:
uint64_t w, r, b;
uint128_t mod;
std::string mode;
std::vector <uint64_t> S;
public:
RC5(std::string KEY, std::string MODE, uint64_t W = 32, uint64_t R = 12, uint64_t B = 16){
uint128_t mod = 1;
mod <<= W;
mode = MODE;
w = W;
r = R;
b = B;
std::cout << mod << std::endl; // 1 << 32
keygen(KEY);
std::cout << mod << std::endl; // 1 << 32
}
void keygen(std::string key){
std::cout << mod << std::endl; // 0
// lots of commented out stuff
}
};
我相信uint128_t寫得不錯,所以這似乎沒有道理。如有必要,可以找到uint128_t here。
爲什麼我這麼失明? – calccrypto 2011-05-31 13:53:10
@calccrypto,不要打擾你自己。我們已經在某個點或其他地方完成了這項工作......;) – Nim 2011-05-31 13:55:10
@calccrypto,如果你有一個你堅持的命名約定,那麼它可能會使這樣的問題很容易被發現。有些人經常在類成員的任一端添加一個'_',這樣當你查看代碼時你就知道它是一個局部變量還是成員。 – Nim 2011-05-31 14:15:59