Есть ли причина, по которой такое объявление неправильно в C?
short foo() { short x,y,z; y=24; z = x + y; return z; }
Декларации не ошибочны per se , но есть проблемы с кодом:
short foo(void)
short foo()
z = x + y;
x
Возвращаемое значение z будет неопределенным поведением, потому что вы не инициализируете значение переменной x в этой функции.Возвращаемое значение этой функции будет несовместимым, иногда оно будет 24, иногда это будет другое значение.
z