Современный компилятор встроит его, соблюдая оригинальное поведение вызова функции.
из моих друзей показал мне эту программу и спросил, почемуi
переменная увеличивается в два раза.
Согласно моему пониманиюMAX(i++, ++j);
в этой строкеi
сначала отправляется в качестве параметра, а затем увеличивается, поэтому, если начальное значениеi
является10
тогда увеличенное значение должно быть11
, но это показывает увеличенное значениеi
как12
.
Программа:
#include<stdio.h>
#define MAX(x,y) (x)>(y)?(x):(y)
void main(void)
{
int i = 10;
int j = 5;
int k = 0;
k = MAX(i++, ++j);
printf("%d %d %d",i,j,k);
}
Выход :
12 6 11
Может кто-нибудь, пожалуйста, объясните мне, как значение увеличивается до 12?
Благодарю.