Use __typeof__ instead of typeof to work in C99 mode