Copy link
@gautierhattenberger

gautierhattenberger Mar 20, 2017

Member

Actually this two lines are equivalent, the ; already means that it the declaration and not the implementation. So placing it in a header already makes it "global". And we need that so that the module is properly initialized by the general modules init function. We only keep the extern to make it clearer that it is part of the public interface of the module.
As a side not, this only works for functions, not variables where int foo; and extern int foo; are really different things.