Is `void` the correct way to say "do not initialize this variable"?

drug007 drug2004 at bk.ru
Sun Oct 2 23:45:45 UTC 2022


On 10/3/22 02:30, ryuukk_ wrote:
> I have tried to look at the documentation and various places on the DMD 
> source, but i couldn't find the answer

https://dlang.org/spec/declaration.html#void_init

> 
> ```D
> MyStruct test = void;
> ```
> 
> Does this guarantee that the compiler will not initialize it?

Yes

> 
> Does it work with static arrays of struct too?
> 

It works but not as someone could expect. In case of
```
Foo[2] arr = void;
```
`arr` value is not defined, it is not an initialized array of 
uninitialized elements like you want, it is just uninitialized array.

> The generated code is different than ``MyStruct test;``
> 
> What exactly (by exactly i mean is the behavior documented somewhere?) 
> ``void`` does?
> 





More information about the Digitalmars-d-learn mailing list