Does it matter where the define goes?
no defines can go anywhere but for readability most keep them altogether and before the main code begins
you have not specified the version of pbp used it may mattter
DEFINE HSER_CLROERR 1 is definitely a pbp3 define I'm not sure if it applies to pbp2.xx maybe someone else can verify or maybe even rtfm , my pbp2.6 book has been misplaced (again)