No UB, omitting the initializer makes it a tentative definition, which will be merged with any explicit definition found in another translation unit. See "Tentative definitions" in https://en.cppreference.com/w/c/language/extern
No UB, omitting the initializer makes it a tentative definition, which will be merged with any explicit definition found in another translation unit. See "Tentative definitions" in https:/ /en.cppreferenc e.com/w/ c/language/ extern