整型值有时会被覆盖为零
int value overwritten to zero sometimes
我有一段代码是这样工作的:
boolQwInterface::setSomething(const A& obj, const B& Name, int Val)
{
bool ret=true;
LOG_MSG(msg, SIZE, "writing: %s, %s, %d", dbPtr->getDbName(), Name.getRepr().c_str(), Val);
if(WriteDB(dbPtr->getid(), obj.c_string(), Name.getRepr().c_str(), (void*)&Val)<0)
{
LOG_MSG(msg, SIZE, "failed: %s", Name.getRepr().c_str());
ret=false;
}
....
}
问题是"Val"被覆盖为0,即使调用者正在传递一些真正的值,如40左右。有时,它接受调用者传递的正确值(比如40左右),否则,虽然传递给它的值是40,但它将其作为零。对此有什么想法吗?也许我应该顺便介绍一下?
我使用答案框,因为用换行符更容易描述。
代码中有趣的部分可以简化为:
bool setSomething(int Val) {
FunctionOne(Val);
FunctionTwo(&Val);
....
}
你真的没有提供足够的信息来帮助你。
相关文章:
- C 字符串返回字符串的整数/双精度/长整型值
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- JNI 日期值转换问题,在C++中获取不同的长整型值
- 将长整型值打印为带有前导零的十六进制
- 为什么在传递长整型时调用具有两个双精度类型的参数的重载函数?
- 将整型常量映射到类型
- 将元组和整型实例合并到引用元组中
- 提升不良词法强制转换:将字符串转换为无符号长整型时,无法将源类型值解释为目标
- 为什么C++不允许两个同名的函数/类模板,区别仅在于非类型模板参数(整型)的类型?
- 将最小值整数转换为无符号长整型
- 如何将小端格式的QByteArray转换为无符号长整型
- 直接初始化无符号短整型的标准行为
- 无符号长整型和无符号 int 之间有什么区别,这 2 种类型应该如何在 c# 中封送?
- 无符号和有符号短整型的位宽
- 将整型转换为浮点型时检测溢出
- 环礁和(长整型)的区别?
- 为什么允许将整型、枚举和指向成员的指针类型reinterpret_cast到自身?
- 将逗号格式化为长整型整数
- 整型值有时会被覆盖为零