Z punktu widzenia syntaktyki języka - nie jest to problem i obydwa podejścia będą działać. W drugim przypadku ucierpi nieco czytelność i osobiście bym tego podejścia nie rekomendował.
Co do typedef to drugi przypadek porównałbym do czegoś takiego:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Można i będzie to działać... ale czy jest sens tak robić to już mocno dyskusyjne.
Dla czystości kodu osobiście użyłbym następujących konstrukcji
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
(static jeśli zmienna globalna a nie automatyczna)
Wtedy mamy odrobinę przejrzystszą sytuację, i do tego konsekwentnie nazwy zmiennych są zapisywane w systemie notacji np. camelCase. W oryginale zmienne
ala,
ola,
costam i
tmr są zapisane małymi literami, a zmienne
IMIONA i
TSTIMER są też zmiennymi i zapisane dużymi literami - co nie jest konsekwentne.
PS. Jeszcze po doczytaniu dotarło do mnie, że ta druga deklaracja może to być związane z przypadkiem jak opisany tutaj
https://stackoverflow.com/questions/168 ... meter-listWięc mogło chodzić o specyficzny przypadek w którym konkretny typ jest użyty jako parametr wewnątrz struktury. Jeśli nie zrobi się tak jak było w oryginale, to dostaniemy warning od kompilatora
Warning its scope is only this definition or declaration, which is probably not what you want
Mam nadzieję, że to pomoże :-)