|
![](/i/fill.gif) |
Warp wrote:
> How do you resolve this? That's right: You tell the compiler which files
> it needs to compile.
Nope. You tell the compiler which *object* file goes with the appropriate
*source* file. Either they're all compiled together (in which case you
shouldn't be stupid enough to do that because it won't compile at all), or
one or the other is in a library, at which point you don't need to know
where the source code is or which one was actually used, because it's
already compiled.
Do you really not see the difference between saying "each time I compile
something, I have to pick which source file to compile" and saying "each
time I compile something, I have to pick the right source files that go with
the corresponding libraries of every library I'll eventually link this with"?
> Exactly how is this situation different from your example?
Because the object code of the file in question is used during the
compilation of your source code. Hence, the declarations and definitions are
united in one file, which is checksummed if distributed outside the project
to ensure what version you're using.
Indeed, when I use the C# equivalent of stdio (or any other third-party
library), I don't need any source code I didn't write myself, nor do I need
to specify where to find the libraries. I merely say which version of what
implementation I want.
> an inexistent flaw in C
I'm happy for you that this flaw has never bitten you in the butt. But it's
far from "inexistent." (Incidentally, the word would be "nonexistent".)
--
Darren New, San Diego CA, USA (PST)
"How did he die?" "He got shot in the hand."
"That was fatal?"
"He was holding a live grenade at the time."
Post a reply to this message
|
![](/i/fill.gif) |