728x90
728x90

컴파일 3

C,C++] Visual Studio와 컴파일러

요즘 대학교 전산실 컴퓨터 성능이 기본적으로 멀티코어에 8GB의 램을 깔고 가는 경우가 많다 보니, 통합개발도구(IDE)로 Visual Studio 커뮤니티를 사용하는 경우가 많다. 그 언어 자체의 특성과 프로그래밍에 대해서 다루기 때문에 컴퓨팅 성능이 문제가 되지 않는다면 Visual Studio가 제공하는 여러 환경만큼 입문하는 사람에게 좋은 것은 없다. 이렇게 입문하고서 한창 프로그래밍을 즐기다가 자료구조, 알고리즘 등을 접하고, 좀 더 자신의 실력을 향상시키기 위해서 백준 온라인 저지(BOJ)나, 알고스팟 등의 사이트에서 제공하는 문제를 풀다보면 Visual Studio에서는 정상적으로 작동함에도 불구하고 채점 시 컴파일 에러를 띄우는 문제를 접하게 된다. 예를 들자면, strlen()을 사용하는..

C,C++] 조건 컴파일 문

헤더 파일을 작성하고 이용할 때 주의해야하는 부분이 있다. 클래스나 함수가 선언된 헤더 파일을 여러 차례 include 하면, 중복 선언으로 인해서 컴파일 오류가 발생할 수 있다는 점이다. 헤더파일을 이용하는 main.cpp에서 A라는 헤더 파일을 여러 차례 include하는 경우는 극히 드물겠지만, 문제는 다른 헤더 파일 B와 C에서 이미 헤더 파일 A를 내부적으로 include한 경우 일일이 헤더파일을 확인하는 방법 외에는 중복 선언을 방지할 방법이 없다. 제대로 숙지하지 못한 상태에서, A, B, C를 연달아 include하는 경우, 결국 헤더 파일 A의 중복 선언이 두 차례 발생해 컴파일 오류를 발생시킬 것이다. 이 문제를 해결해주는 것이 바로 조건 컴파일 문이라는 것이다. 헤더 파일을 작성하는 ..

C#] 정수 Overflow와 checked, unchecked 연산자

실행 시점에서 정수 형식에 대한 산술 연산이 형식에 담을 수 없을 정도로 크거나 작을 수 있음.이 경우 overflow가 발생하는데, 이 경우, 어떠한 예외도 던져지지 않고,연산의 결과는 끝에서 끝으로 순환(wraparound)됨. 더 큰 정수 형식으로 연산을 수행한 후, 여분의 유효 자리 비트들을 폐기한 것과 같은 결과가 나오는 것이 대표적인 예 123int a = int.Minvalue;a--;Console.WirteLine (a == int.MaxValue);cs 이러한 경우의 예외 처리를 해주고 싶을 때 checked 연산자를 이용하면 예외 처리가 가능하다. checked 연산자 / unchecked 연산자표현식이나 문장에 checked 연산자를 지정하면, 실행시점에서 해당 형식의 산술 한계를 넘..

728x90