История изменений
Исправление Sorcerer, (текущая версия) :
The value of the compound literal is that of an unnamed object initialized by the initializer list. If the compound literal occurs outside the body of a function, the object has static storage duration; otherwise, it has automatic storage duration associated with the enclosing block.
По факту оптимизатор может и не будет создавать объект, но конструкция с кастом NULL к указателю на структуру как-то надежней выглядит.
Исходная версия Sorcerer, :
The value of the compound literal is that of an unnamed object initialized by the initializer list. If the compound literal occurs outside the body of a function, the object has static storage duration; otherwise, it has automatic storage duration associated with the enclosing block.