Следующий код здесь с держать язык C Синтаксис:Вызов по потребностям и стандартным выводам C?
#include <stdio.h>
int func(int a, int b){
if (b==0)
return 0;
else return func(a,b);
}
int main(){
printf("%d \n", func(func(1,1),func(0,0)));
return 0;
}
Что вывод этого кода в 1) работать со стандартным C, 2) с любым языка, который имеет вызов необходимости собственности , Затем:
в (1) программный цикл в бесконечный вызов, а в (2) у нас есть нуль! это пример, решаемый TA в курсе программирования, любая идея для описать это для меня? благодаря
Что вы подразумеваете под «Это до процессора, чтобы выбрать порядок аргументов функции»? Почему это UB? – Xiobiq
Я знаю, но почему вы думаете, что это неопределенное поведение? –
Либо 'func (1,1)', либо 'func (0,0)' можно было бы оценить сначала ... но поскольку оба должны быть оценены перед внешним вызовом 'func()', он все равно даст бесконечную рекурсию (в С). – Dmitri