Hello,
See here:
www.open-std.org/.../C99RationaleV5.10.pdf
Is it possible that "Jack Sprat", the staunch defender of the C standard as the ultimate reference when writing programs, missed the following statement?
C code can be non-portable. Although it strove to give programmers the opportunity to write truly portable programs, the C89 Committee did not want to force programmers into writing portably, to preclude the use of C as a “high-level assembler”: the ability to write machine- 35 specific code is one of the strengths of C. It is this principle which largely motivates drawing the distinction between strictly conforming program and conforming program (§4).
this is precisely what Per Westermark has been saying. Exactly what Erik Malund has been saying. Remember: Jack Sprat claims often that writing a program that complies with the C standard is a GUARANTEE for its correct functioning.
Writing modular code is something that is done to help reduce the complexity and/or improving code reuse.
That obviously requires a very light hand. Prio 1 is to analyze the situation. Then a suitable solutino can be suggested.
That means that a company can't just produce a document telling how people should modularize a program. The process must include the project team based on the needs of the project and the available resources.
Having iron-hard rules doesn't help the project team - except that they are allowed to turn off their brains and hack lousy "by-the-book" code without having to care about how well it works. The goal should be to write economical and well-working code, not a 25-layer precursor to Eddie, the shipboard computer from The Hitchhikers Guide to the Galaxy. It just may end up more like HAL from 2001.
Is that the latest Arduino spin-off...?!
;-)
"Writing modular code is something that is done to help reduce the complexity and/or improving code reuse."
in my case, it is primarily to reduce labor cost and reduce time to market, by providing high quality code that has been debugged before.
it is, from that point of view, a preservation / institutionalization of our prior investment in debugging.