Vladimir Ljaschko (23.08.2010 13:39, просмотров: 104) ответил fk0 на На счёт возможных ошибок -- надумано. warning или error дают все компиляторы. Зато нарушается принцип "не плодить сущностей сверх необходимого", что ведёт к бардаку, говнокоду и ошибкам. И программисту не видно в *.c переменной -- размазывается код по
Препроцессор, при всех его опасностях, существенно систематизирует проект. Использую, много, говнокод такой симпатишный получается:)например Определение областей в ЕЕПРОМ выглядит так
//	 EEPROM areas
//	 	 	 type_name	 	   var_name	 	 	qty		mask	 	 	 	  name	 	  
BACKUP_AREA (SETUP,		 		se,	 	 	 	2,		SETUP_MASK,			"Setup  ")
BACKUP_AREA (STATISTIC,	 		stat,	 	 	1,		STATISTIC_MASK,		"Statis ")	  
BACKUP_AREA (TIMES,		 		times,		 	1,		TIMES_MASK,			"Times  ")
#ifdef TYPE_K
BACKUP_AREA (CALIBR,			calibr,	 	 	1,		CALIBR_MASK,		"Calibr ")	 // last group
#endif
BACKUP_AREA (DEVICE,	 		device,	 	 	1,		DEVICE_MASK,		"Device ")
BACKUP_AREA (TURNON,			turnon,			1,		TURNON_MASK,		"Turn on")
BACKUP_AREA (PROCESS,	 		process,	 	100,	PROCESS_MASK,		"Process")
BACKUP_AREA (LOG,				log,	 	 	20,		LOG_MASK,			"Logs   ")
BACKUP_AREA (CONSUMPTION,		consumption,	160,	CONSUMPTION_MASK,	"Consum ")