Опасность такая: #ifdef ADC_C
#define SENSOR AAA
#endif
//...
//... прошло 300 строк
#ifdef UART
#define SENSOR BBB
#endif
//...
//... ещё 100500 строк
#ifdef ТРАТАТА
#define SENSOR ХХ-ММ
#endif
Действительно, такое можно написать и будет всё работать.
Мало нам проблем, так ещё совпадение имён - зачем ?
В один прекрасный момент выяснится это совпадение.
Придётся разбираться и вспоминать, что где и когда используется и означает.
И почему сделано именно так.
Особенно доволен будет принимающий такой проект,который
всего этого и не знал никогда.
---
namespace - "это другое" (c)
Фактически это расширение имени с возможным добавлением
тематического обозначения в имя.
static - да, это ограничение области видимости, но не только.
Это ещё и размещение переменной в сегменте данных программы.
Несмотря на возможности, я и для static-а не посоветую (и сам не делаю)
одинаковые имена переменных.