#ifndef __GNUC__ задуши меня
Этот вопрос может быть совершенно странным, в настоящее время я работаю над старым кодом (не от меня). На самом деле я не программист на C, но я пытаюсь понять, что на самом деле должна делать эта часть кода. К счастью, странная часть не слишком длинная (часть конфигурации):
int
main ()
{
#ifndef __GNUC__
choke me
#endif
;
return 0;
}
Если это не компилятор GNU, тогда "choke me"... что это choke meдолжно означать ... Я действительно не понимаю. (и обнаружил только странные вещи, пока гуглил меня душит -.-)
Ответы
Это просто должно быть что-то, что недопустимо для C и вызовет синтаксическую ошибку, препятствуя компиляции файла.
Предположительно, программист не предполагал, что код будет работать с каким-либо компилятором, кроме GNU C (gcc), поэтому это приведет к сбою сборки, если используется какой-либо другой компилятор. Выбранные слова не имеют особого значения, за исключением того, что «удуши меня», вероятно, имелось в виду в смысле «это то, что компилятор не может« проглотить », и это его убьет».
Более современный подход будет использовать #error.
Это недействительный оператор, поэтому это приведет к ошибке.