47. Aliasing Nested Namespace

#include <iostream>
using namespace std;

namespace Communication {
    namespace I2C {
        int speed = 400000; // 400 kHz
    }
}

int main() {
    namespace CI = Communication::I2C;
    cout << "I2C Speed: " << CI::speed;
    return 0;
}

Explanation & Logic Summary:

  • namespace CI = Communication::I2C; creates a namespace alias
  • Instead of writing Communication::I2C::speed, we can write CI::speed
  • This improves readability without changing behavior

Layman’s Terms

It’s like creating a shortcut to a deep folder so you don’t have to navigate the full path every time.

Firmware Relevance & Real-World Context

Embedded projects often use deeply nested namespaces for hardware abstraction layers (HALs), drivers, and protocols.
Namespace aliasing improves readability and reduces clutter in firmware code while preserving structure.