В C++ or или | – ключевые слова. А в стандарте С99 они определены как макросы, следовательно требуется включение заголовочного файла <ISO646.h>.