fix complex conflict between C and C++