Hacker News new | ask | show | jobs
by gameswithgo 3051 days ago
I don't understand why anyone cares. you grab the .h file and call "load a jpeg"/"draw a button" or you grab two files and call "load a jpeg"/"draw a button"

Are we bikeshedding about this?

1 comments

This is a matter of adhering to a sound engineering principle, and the approach in question has not been generally considered acceptable. To explain why, one of the ideas behind header files was that they could be freely reused in more than one part of a project; therefore, for example, any executable code appearing in a header file might end up existing in multiple copies throughout the executable (perhaps, depending on the linker).
> any executable code appearing in a header file might end up existing in multiple copies throughout the executable

that's why the keyword "inline" exists.

'Inline' does not prevent duplication of the generated code (in fact, it forces it).
... mostly. Except in the case where the inlined version can be optimized away, which is the best time to use inline but not entirely germane.