- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
static inline int getKey(short int high, short int low)
{
return (((int)high)<<16)+(int)low;
}
static inline short getHigh(int pKey)
{
return (short)(pKey>>16);
}
static inline short getLow(int pKey)
{
return (short)(pKey&0x00000000FFFFFFFF);
}
getLow - всё равно обрежется, возможно даже компилятор соптимизирует
судя по getKey() - нет :)
а может быть и да.
задумайся: что произойдет если в low будет верхний бит установлен?
> getLow
да. но константа для обрезания в short радует.
128-битный процессор? :-)
Так gcc весь этот код превратил в один mul, который тут и задумывался ;)
Так что, видимо, компилятор просто выкинет эту маску в getLow.