What exactly module in D means?

Joakim via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Jul 5 13:35:04 PDT 2014


On Saturday, 5 July 2014 at 16:35:31 UTC, Andre Tampubolon wrote:
> I've been reading the newsgroup for a while, and it seems that 
> one of the reason folks like D is because it supports module.
>
> My question is: what does module mean?
> A quick google pointed my this page: 
> http://dlang.org/module.html.
> Still cannot understand it, though :)
>
> How does it differ from the old C's #include?
>
> For example, consider the hello world in C.
>
> #include <stdio.h>
>
> int main(void){
> 	printf("%s\n", "Hello world...");
> 	return 0;
> }
>
> The C preprocessor while replace the line "#include <stdio.h>" 
> with the content of stdio.h itself.
>
> While in D:
>
> import std.stdio;
>
> void main(){
> 	writeln("Hello world...");
> }
>
> Does that mean the compiler take the "definition" of writeln 
> itself from stdio.d and paste it into my program? Pardon my 
> ignorance, because I'm not versed in compiler theory.

You might find the clang docs on C++ modules worthwhile, though 
they do it somewhat differently from D:

http://clang.llvm.org/docs/Modules.html

An #include simply copies and pastes the entire contents of the 
C/C++ header into your source, which can happen over and over 
again in a large project with no include guards, while modules 
are a more sophisticated way of separating code.


More information about the Digitalmars-d-learn mailing list