Modular programming consists of separating implementation from interface and hiding information in the implementation. In C this is achieved by placing the interface definition in a header file and the implementation in a source file. Disciplined use of static is used to hide implementation details.
Modular programming in C involves breaking down a program into separate modules or units of functionality, promoting code organization, reusability, and maintainability. It allows for encapsulation of internal details, easier collaboration among developers, and focused testing and debugging.