问题标签 [signedness]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - C 比较 'x < 0' 其中 'x' 的类型是任意的,即可能是无符号的
给定:
定义为的类型TheValueT
可以任意配置,例如uint8_t
或int64_
。让有一些代码:
问题:
碰巧如果TheValueT
定义为无符号类型,编译器会抱怨“由于类型范围有限,条件始终为真......”。
问题:
如何在让TheValueT
仍然是任意整数类型的同时避免编译器警告?该解决方案应适用于最广泛的 C 编译器。
rust - 如何在 Rust 代码中表示 C 的“无符号负”值?
我使用winapi crateResumeThread
从 Rust 调用 WinAPI 函数。
文档说:
如果函数成功,则返回值是线程之前的挂起计数。
如果函数失败,则返回值为 (DWORD) -1。
如何有效检查是否有错误?
在 C 中:
在锈中:
我理解错误;但是在语义上与 C 代码相同的最佳方式是什么?检查反对std::u32::MAX
?
c++ - C ++中相互转换不同签名类型的最佳方法?
通信对等方发送了一个 uint64_t 数据字段,它带有我需要存储到不支持无符号整数类型的 Postgresql-11 数据库中的订单 ID。虽然实际数据可能超过 2^63,但我认为INT8
Postgresql11 中的一个文件可以容纳它,如果我仔细进行一些转换。
假设有:
我计划使用以下方法之一将 uint64_t 值转换为 int64_t 值:
to_db = order_id;
// 直接赋值;to_db = (int64_t)order_id;
//c 风格的强制转换;to_db = static_cast<int64_t>(order_id);
to_db = *reinterpret_cast<const int64_t*>( &order_id );
当我需要从数据库加载它时,我可以进行反向转换。
我知道它们都可以工作,我只是对哪个最符合 C++ 标准感兴趣。
换句话说,哪种方法在任何编译器的任何 64 位平台上始终有效?
谢谢!!!
c++ - c++ 在表达式中查找隐式类型转换
对于以下表达式:-
我们得到以下输出:-
似乎 ui+fval 是一个浮点数。
但是,鉴于 float 和 unsigned int 都是 4 个字节,并且并非所有 unsigned int 值都可以放入 float,所以 fval 不应该转换为 unsigned int 吗?
c - 警告:传递“Proc_Start”参数 3 的指针目标在符号上不同
我的 stm32 目标的 C 代码有问题。
我收到此错误:
警告:传递“Proc_Start”参数 3 的指针目标在符号上不同
我真的不知道为什么,我在网上搜索了类似的主题,但主题中提出的解决方案都没有帮助我。
我为您提供了问题所在的代码以及注册错误的宏的定义
编译产生错误的地方
宏的定义
用宏调用的函数
非常感谢您未来的帮助
编辑 :
我已经尝试过,但是添加第三个参数并没有给出警告,而是一个错误,说宏只需要 2 个参数
宏“mProcStartParam”传递了 3 个参数,但只需要 2 个
该代码通过稍微修改 AppGestRelay_Init() 函数来工作,但仍然有警告,我想知道它来自哪里
谢谢 :)
解决 :
通过在 mProcStartParam 的定义中的 #fonct 前面添加 (const s8*) 警告消失,就像在 mProcStart 的定义中一样
谢谢