Трюки
Обмен значениями без временной переменной
a^=b^=a^=b;
Короткая запись "если i или j меньше 0"
if ((i|j)<0) ...
Смещение класса/структуры
int ofs = (int)&((Class*)0)->element;
Duff''s device
#include <iostream>
using namespace std;
void foo(const int i) {
cout << "foo(" << i <<")" << endl;
}
int main() {
int c = 10;
switch(c&3) while((c-=4)>=0) {
foo(c); case 3:
foo(c); case 2:
foo(c); case 1:
foo(c); case 0:;
}
return 0;
}
Художественное оформление true/false
#define TRUE ''/''/''/''
#define FALSE ''-''-''-''
Чудная выборка символа
int direction = 0;
char direction_name = direction["FBLR"];
Операторы "головастики"
Быстрый обратный квадратный корень (маленькая точность)
float InvSqrt (float x){
float xhalf = 0.5f*x;
int i = *(int*)&x;
i = 0x5f3759df - (i>>1);
x = *(float*)&i;
x = x*(1.5f - xhalf*x*x);
return x;
}
Опрератор "перейти" -->
void doStuff(int count) {
while(count --> 0) {
do();
}
}