pragma is better than preprocessor ifs