I take it the output looks something like this: struct S { int a; } S s; s.a = 3; void main() { } Hope this clears up this next problem. Module scope doesn't get to utilize a variable, it can only initialize at compile-time.