Comment #0 by ellery-newcomer — 2010-10-29T12:16:39Z
~ <type> => <type> for all integer types in D, however
~ <type> => int for small integer types in C.
This is a source of silently different behavior between D and C at least in unsigned integer types.
example:
// test.d
import std.stdio;
void main(){
ushort x = 0xffff;
writefln("%08x", ~x+1u);
}
// test.c
#include <stdio.h>
void main(void){
unsigned short x = 0xffff;
printf("%08x", ~x+1u);
}