make it compatible with c99 and gnu99 as well