우선, 시작하기 전에 Windows OS에서 Intel core2를 실행하는 VC++ 2008 Professional을 사용하고 있습니다. 또한이 코드는 Windows를 실행하는 core2/corei7 이외의 다른 프로그램에서 실행되지 않습니다.while 루프의 조건 순서
다음과 같은 두 가지 조건의 while 루프가 있습니다. 참고 : 훨씬 단순화 된 버전입니다.
while((a != b) && (array[a] < c))
제 조건 (a != b)
거짓 생성하는 경우는 제 2 상태도 평가 될 것인가? 또는 루프가 바로 거기에서 종료 될 것입니까?
나는 몇 가지 테스트를 실시했으며, 실제로 사실 인 것 같습니다.
그러나 여기 캐치가 있습니다. 첫 번째 조건이 거짓을 평가하면 두 번째 조건은 평가 된 경우 액세스 위반을 생성합니다. 그러나, 내가 볼 수있는 것으로부터, 일단 첫 번째 조건이 거짓으로 평가되면, 프로그램은 두 번째 조건을 평가하는 것을 귀찮게하지 않고 루프를 종료하여 나를 절약합니다.
문제는 내가 아주 멋지고 깔끔한 코드를 갑자기 나에게 불어 넣지 않으면 액세스 위반 문제를 해결할 수 없다는 것입니다. 그러나, 작은 "버그"(나는 컴파일러 최적화가 아니라 버그라는 것을 알고있다.) 때문에, 나는 그것을 벗어날 수있을 것 같다. 나는 또한 이것이 아마도 좋은 프로그래밍 연습이 아니라는 것을 알고 있습니다. 솔직히 말해서, 제 상황에서는, 그것이 작동한다면, 저는 이미 게임보다 앞서 있습니다.
제 질문은이 "버그"또는 프로그래밍 과실이 다시 나타나서 언젠가는 나를 물습니까? 비록 내가이 섹션에서 지옥을 테스트하고 이것이 단지 한 번 사용했을 것이라고 생각할 때조차도?
와우, 많은 질문이 있습니다. 너는 나의 메신저를 단지 추가 하야한다. –
다시 너! 당신은 MM에게 메시지를 보내고 내 메신저를 주실 수 있습니다. 야, 네가있는 곳의 3AM 같아! 잠들지 않니? 너 여기 있니? (나는 다른 사람들이 잠 들어있어 나를 괴롭히지 않아서 내 논문을 끝내기가 너무 늦기 때문에 나는 단지 늦다.) – Faken
주기적으로 몇 개의 사이트를 확인하며 질문은 항상 내 관심사를 파악하고 페이지 상단 근처에 있습니다. 조금 무서워지고있어. 나는 2 시간 만에 조기 체육관에 올랐다. –