>PS вот тут подсказали что PENTIUM и ATHLON тож макросы были в
>старом коде , которые определялись как число и соответственно всё работало.
>
>Но всё равно думаю , нельзя что ли там строки использовать? А откуда вы взяли, что PENTIUM и ATHLON в данном случае - строки? С точки зрения C это ни разу не они.
Если же опустить лирику, то более традиционно IMHO использование макросов примерно таким образом:
#ifdef PENTIUM
printf("intel");
#elif defined ATHLON
printf("amd");
#elif
#error "Unknown processor. You must define PENTIUM or ATHLON."
#endif
Ну и, соответственно, при компиляции:
gcc -DINTEL test.c
или
gcc -DATHLON test.c
Если строже (по-моему определение макроса без значения - это расширение gcc), то что-то вроде -DINTEL=1. Вот, как-то так.