Все, что плавает на вашей лодке.
Если a.h как-то связан с этим макросом, то это хорошее место. Если он помещен туда «только потому, что» a.h уже включен в b1.c и b2.c, это не проблема проектирования, скорее это проблема «удобства». Возможно, это лучше, чем дублирование, но в идеале, если это не связано с ах, возможно, вы могли бы поместить его в bh (так как оно связано с b) или handymacros.h (так как это не совсем b, но a не использует его) .