作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有这个代码:
__asm jno no_oflow
overflow = 1;
__asm no_oflow:
它会产生这个很好的警告:
error C4235: nonstandard extension used : '__asm' keyword not supported on this architecture
什么是等效/可接受的替代代码来检查之前发生的减法运算的溢出?
最佳答案
首先定义如下:
#ifdef _M_IX86
typedef unsigned int READETYPE;
#else
typedef unsigned __int64 READETYPE;
#endif
extern "C"
{
READETYPE __readeflags();
}
#pragma intrinsic(__readeflags)
然后您可以按如下方式检查 eflags 寄存器:
if ( (__readeflags() & 0x800))
{
overflow = 1;
}
关于c++ - 如何在 VS2008 64 位构建中用 intristic 替换 __asm jno no_oflow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1879768/
多么好的标题,假设我有这样一张 map : std::map m; 如果我写下面的内容 cout using namespace std; int main() { cout << int()
我有这个代码: __asm jno no_oflow overflow = 1; __asm no_oflow: 它会产生这个很好的警告: error C4235: nonstandard exten
我是一名优秀的程序员,十分优秀!