Как объявить функцию, если не объявлена

149
19 ноября 2020, 10:20

На ОС Linux есть функция getchar_unlocked()

Но Шинде такая функция по-умолчанию undefined

Я тут подумал, можно ли проверять, объявлена ли функция и если нет - объявить самим

Есть код:

#ifdef _WINDOWS
// no getchar_unlocked on Windows so just call getchar
inline int getchar_unlocked() { return getchar(); }
#endif

НО! Постоянно следить за тем, чтоб _Windows был определен на Шинде и неопределен в Linux мутно, можно ли автоматизировать данный процесс

Answer 1

Вообще вы написали бред в вопросе, и непонятно что вы имеете ввиду под автоматизацией процесса, когда препроцессор делает это и так за вас, но не суть.

Определите макрос:

#ifdef _WINDOWS
#define getchar_unlocked getchar
#else
#define getchar_unlocked getchar_unlocked
#endif

Теперь при развертывании getchar_unlocked, он будет превращаться либо в getchar_unlocked или в getchar.

READ ALSO
Помогите разобраться с переносом слов

Помогите разобраться с переносом слов

Есть программа, которая хорошо работает с небольшим объемом текста

139
сортировка индексным массивом с++

сортировка индексным массивом с++

Задача была написать тривиальную структуру и отсортировать ее в процентном соотношении по кол-ву поступивших в вуз учеников методом сортировки...

309
Как работает emplace с точки зрения памяти?

Как работает emplace с точки зрения памяти?

Как работает emplace с точки зрения размещения в памяти ?

126