2 ms·
Maybe you can forgive C for the stupid header compilation model (why let the compiler do what you can make the programmer do by hand?). This model enables bina
by unwind 10y ago
Maybe you can forgive C for the stupid header compilation model (why let the compiler do what you can make the programmer do by hand?).
This model enables binary-only distribution of libraries, you get the code as a .a (or lib, .so, .dll or whatever) and the API declaration as a header file.
You can write code against a library without having the library, using only the header. You can't do the final linking of course, but you can write the code.
The alternative, I guess, would be to embed this information in the library itself, and have the compiler extract it, which sounds as if it would have been scary from a performance point of view 40 years ago (and also somewhat hard).
- the_why_of_y 10y agoWhy do you think that parsing a compiler-generated binary representation of an API is more expensive than parsing a human-readable textual representation of the same API? Also, have you ever built a large template heavy C++ program?