#include<stdio.h>
void fun(z)
{
printf("%d",z);
}
int main()
{
int a=5;
fun(a);
}
Это дает выход в 5. Не должен давать ошибку - необъявленной переменной г?В C почему параметр, передаваемый в функцию ничтожной компилируется в то время как он должен выдавать ошибку
Является ли это оптимизацией компилятора?
Древний C имеет неявный тип 'int'. – EOF
'z' не 'не объявлен'. Это параметр функции (и его тип неявно «int»). –
Никогда не пишите такой код! Получите C-книгу о ** modern ** C (которая началась 17 лет назад с C99). И 'z', очевидно **, объявлен ** доисторическим путем. Компилятор должен предупредить. Если нет: ** всегда ** включите, по крайней мере, рекомендуемые предупреждения и обратите внимание на них. – Olaf