Цитата:
|
по препроцессору начать с - man cpp.
|
У меня не Линус, а Винда стоит.
Цитата:
|
макросы - это зло. отлаживать потом труднее. лучше const char* делать.
|
Чуть ли не цитата с книги Страуструпа

)). Вообще-то это, скорее всего, и правда (сам уже сталкивался с трудностями при использовании макросов-функций). НО мне, хотябы исходя из образовательных целей, хочется изучить предпроцессор. Тем более, что не используя макроподстановки помоему нельзя эффективно и элегантно написать гибкую программу, у которой поля для ввода варьируются (хочется создать табличку). Для решения этой проблемы я знаю способы:
1) Объявить const char*, но это не гибко, т.к. при замене значений полей нужно менять цифры покрайней мере в друх местах (с строке и для констант или вообще повсюду в программе)
2) С помощью sprintf ренерировать строку в начале программы, но это не эффективно.
3) Переписать/подправить стандартную функцию scanf. Но это долго/и, кажется, не оправдано сложно
4) Написать свой препроцессор и перед компиляцией пропускать исходники через него. Не гибко, будет сложно для понимания исходников другими людьми.
Как понимаю найлучшее решение пока 2) или вообще отказ от гибкости. Но думаю, что должно существовать решение при помощи препроцессора и оно, понятно, будет самым элегантным и эффективным.