Undefined Behavior

김경주·2022년 12월 23일

C

목록 보기
2/4

C 표준에 따르면, c = (b = a + 2) - (a = 1); 와 j = i * i++; 같은 실행문들은 undefined bahavior을 야기한다.

이는 implementation-defined behavior와 다르다.

프로그램이 undefined behavior의 영역에 발을 들이면 그 결과물은 예측불가하다.
다른 컴파일러에 컴파일될 때 프로그램은 다르게 동작할지도 모른다. 이뿐만 아니라 프로그램이 컴파일이 되지 않을 수도 있고, 컴파일이 됐다면 실행이 안될 수도 있고, 실행이 된다면 충돌이 생기거나 매번 다르게 행동하거나 이상한 결과를 낳을 것이다.
한마디로 undefined behavior는 피해야만 한다.

출처: K.N.KING C-PROGRAMMING A MODERN APPROACH

profile
Hello everyone

0개의 댓글