opt41.c
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C语言 代码 · 共 42 行
C
42 行
#include "fail.h"
class uint64 {
public:
uint64() { }
uint64( unsigned long i ) { lo = i; }
uint64 operator+( const uint64 & a ) { uint64 tmp; tmp.lo = lo + a.lo; return tmp; }
int operator<( const uint64 &a ) { return lo < a.lo; }
uint64 operator+=( const uint64 & a )
{
// The assignment never gets done.
return( *this = *this + a );
// The following works though:
// *this = *this + a;
// return( *this );
}
uint64 operator++()
{
return( *this += 1 );
}
unsigned hi, lo;
};
inline unsigned truncate( const uint64 &a )
{
return( a.lo );
}
main()
{
uint64 i;
unsigned ui = 0;
for( i = 0; i < 10; ++i, ++ui ) {
unsigned tr = truncate( i );
if( ui != tr ) _fail;
}
_PASS
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?