Re: 오버플로우 방지에 관하여
, 도장_ 관리자님이 작성나이 같은 정보는 입력값을 검사하는 코드를 넣으면 됩니다.
곱셈 등의 연산의 결과로 오버플로나 언더플로가 발생하는 경우는 매우 복잡합니다.
C 언어에서 오버플로나 언더플로는 정의되지 않은 동작(Undefined Behavior, UB)이고, 각 컴파일러 구현에 따라 결과가 달라집니다(대부분은 같은 결과를 내지만).
보통 오버플로 디텍션이라고 하는데, 이 부분은 전문적인 지식이 필요합니다.
관련 자료를 참고하세요.
가장 간단한 방법은 구글에서 만든 safe_iop 라이브러리의 함수를 사용하는 겁니다.
가장 많이 추천되는 해당 분야 논문
매우 어려운 주제라서 10년차 이상의 프로그래머도 대부분은 정확하게 이해하지 못하고 있는 경우가 많습니다.
자바에는 unsigned 타입이 없는데, 자바 창시자 제임스 고슬링이 C++을 사용할 때 대다수가 unsigned 타입의 동작을 제대로 이해하지 못한다는 사실을 발견했기 때문입니다.(자바8에 지원은 추가됨)