- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的问题与 this one 有关并且将包含几个问题。
对我来说,对上述问题最明显的(意味着我会在我的代码中使用它)解决方案就是:
uint8_t x = some value;
x = (int8_t)x >> 7;
是的,是的,我听到你们所有人的声音......未定义的行为,这就是为什么我没有发布我的“解决方案”。
我有一种感觉(也许这只是我病态的想法)术语“未定义的行为”在 SO 上被过度使用,只是为了证明如果问题被标记为 c/c++,就可以否决某人。
所以 - 让我们(暂时)搁置 C/C++ 标准,想想日常生活/编程、真实的编译器实现以及它们为当代硬件生成的代码。
考虑到以下因素:
>>>
转换为有符号类型的算术移位和无符号类型的逻辑移位。>>>
时发出类似 div
的低级指令(我们在这里不是在谈论运算符重载).那么...有什么(任何现代编译器、硬件)的行为与上述不同吗?简而言之,我是否应该担心右移带符号的值不会被转换为算术移位?
我的“解决方案”在许多平台上仅编译为一条低级指令,而其他平台则需要多条低级指令。您会在代码中使用什么?
请说实话;-)
最佳答案
Why worry about 'undefined behavior' in >> of signed type?
因为任何特定的未定义行为现在的定义有多好并不重要;关键是它可能会在未来的任何时候崩溃。您依赖于可能出于任何原因或没有原因随时优化(或未优化)的副作用。
此外,我不想在使用一开始就不应该使用的东西之前询问对许多不同编译器的实现有详细了解的人,所以我跳过了它。
关于c++ - 为什么要担心签名类型的 >> 中的 'undefined behavior'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20668714/
我刚刚开始使用 data-* 属性来存储查看所需的自定义属性和值。例如 。 基于data-*我正在做一些操作(CRUD)。如果用户在客户端更改 data-* 属性值(即使用 firebug 和其他
我想知道是否有人可以指出正确的方向。我最近开始使用 LinqToSQL 并喜欢强类型数据对象等。 我只是在努力了解对数据库性能等的影响。例如,假设我正在开发一个简单的用户配置文件页面。该页面显示有关用
我正在开发一个有文本区域的 Angular 应用程序。此文本区域的内容随后用于填充输入文本的预览。所有这些都在客户端完成。我担心有人能够将代码注入(inject)我的应用程序,例如 /*So
我在一台机器上运行 CDH 5.6(Hadoop 2.6,HBase 1.0.0)。只有 Hadoop 和 HBase 在运行。 Hadoop 配置为复制因子 1,Hbase 运行在 HDFS 之上,
在 SO 和其他地方,如果没有人礼貌地指出最好使用参数化输入和存储过程,几乎不可能在示例代码中发布长连接的 SQL 指令。 最近的示例 here . 但是担心 Winforms 项目中的 SQL 注入
未受攻击的计算机上的 Web 应用程序在不安全的 WiFi 环境中容易受到 XSS、CRSF、sql 注入(inject)攻击和 cookie 窃取。 为了防止这些安全问题,有以下补救措施 sql注入
我在一个执行数值计算的库上工作了一段时间。它是用纯原生 C++ 编写的,直到现在我一直在使用简单的控制台应用程序来测试它的功能。 是时候在库的顶部构建一个 GUI - 以更好地显示结果表并以图形形式呈
我是一名优秀的程序员,十分优秀!