수업에서 산술식의 피연산자 우선순위에 따른 부작용 설명하면서 이런 코드를 예시로 들었거든

int a=5;

int fun1(){

a=17;

return 3;

}

void main(){

a=a+fun1();

}


 a=a+fun1(); 여기서 a가 먼저 평가되면 결과 a는 8이 되고 fun1()이 먼저 평가되면 결과 a는 20이 되는거잖아.

만약 a=(a)+fun1(); 이런 식으로 썼으면 강제로 a가 먼저 평가되도록 할 수 있는건가? 누가 교수님한테 이렇게 물어봤는데 교수님은 괄호 안에서 아무런 연산이 일어나지 않으니까 컴파일러가 무시하고 넘어갈 수 있을거 같다고, 확신은 못하겠다고 하셨는데 님들 생각은 어떰?