Использование #ifdef в коде - плохая практика?

Мне нужно использовать много #ifdef i386 и x86_64 для архитектурно-зависимого кода и иногда #ifdef MAC или # ifdef WIN32 ... и так далее для кода платформы.

Мы должны сохранить общую кодовую базу и ее переносимость.

Но мы должны соблюдать правила, согласно которым использование #ifdef строго запрещено. Я не понимаю, почему?

В качестве дополнения к этому вопросу я также хотел бы понять, когда использовать #ifdef?

Например, dlopen () не может открыть 32-битный двоичный файл при работе из 64-битного процесса и наоборот. Таким образом, он более специфичен для архитектуры. Можем ли мы использовать #ifdef в такой ситуации?

16
задан RLT 4 November 2011 в 14:32
поделиться