[ CnUnix ] in KIDS 글 쓴 이(By): HellCat ((void*)0) 날 짜 (Date): 1994년02월07일(월) 04시17분24초 KST 제 목(Title): re: 결론 by zeo 근데, 안타깝게도 K&R 은 다시.. "Intermediate result can be stored in temporary variable to ensure a particular sequence." 라고 하네요. 그리고 볼랜드C 는 우수한 상품으로 알려져 있는 상품이고. (볼랜드사와 저랑 관계 전혀 없음) 터보C 에서 위에서 말씀 하신 경우 K&R 에서 말하는 잘못된 경우는 func(a, b, c) 에서 a, b, c 가 다 expression 일때 a, b, c 중 어느 expression 이 먼저 evaluated 되어서 func() 으로 패스 되어 지는 것이 undefined 라는 것이지 Turbo-C 에서 처럼 result = a; /* a is expression */ func (a); /* a is the same expression */ 일때 같은 expression a 가 다르게 evaluate 되는 것은 아닙니다. 그리고 위에서 lint 의 결과를 올린 것과 같이, mips 나 sun 아키텍쳐에서 아키텍쳐에 따라 consistant 한 결과가 나오는 것이 (전 mips 가 잘못 된 것으로 알았는데) 잘못된 것이 아닌 것이 맞습니다. 하지만 터보씨는 한가지 확실 한것은 program 1 에서 result = expression; 과 program 2 에서 func(expression) 이 다르게 취급 된 다는 사실, 그리고 전 그것으로 인해서 터보C 에 대한 비난을 했다는 사실을 아셔 주셨으면 좋겠고, 그 것이 잘못 된 생각이라면 이해가 되도록 고쳐 주시면 감사 하겠으며, 마지막으로 저도 "잘 알지도 못하면서...." 를 더하고 싶지만 생략 하지요. |