반응형

프로그래밍 언어/C, C++ 2

[C/C++] 정수형 변수에 논리 부정 연산하기

오늘은 C언어에서 정수형 변수에 논리 부정(NOT) 연산을 하면 어떻게 될지 알아보도록 하겠습니다. 개인적으로 궁금해서 직접 실험해보고 이렇게 글로 남기게 되었습니다. C언어와 Boolean 타입 C언어는 Boolean 타입을 지원하지 않다 보니 논리형 변수와 정수형 변수를 공유합니다. 즉, 조건식에 정수형 변수가 들어갈 수 있다는 것입니다. 이 때문에 C언어에서는 BOOL이라는 사용자 정의형 타입을 만들어서 씁니다. C99부터 _Bool 타입이 표준으로 들어왔으므로 해당 타입을 사용해도 됩니다. 물론 그렇다고 해서 정수형 변수가 논리값으로 사용할 수 없는 것이 아니기 때문에 여전히 크게 다를 것은 없습니다. C++에서는 bool 형 타입을 지원하지만, 이 역시 자바나 타 언어에서의 true, false..

[C/C++] STL size 함수 숫자 오류

오늘은 C++ STL에서 size 함수 사용 시 숫자 오류가 발생하는 것에 관해 알아보고자 합니다. 어려운 문제는 아니고, 아마 굳이 C++이 아니더라도 다른 경우에도 쉽게 발생할 수 있는 문제라고 생각합니다. 다만, 한글로 된 자료가 별로 없는 것 같아 이렇게 글을 작성하게 되었습니다. 문제 상황 STL에서 제공하는 여러 자료구조 라이브러리를 보면 size 함수가 있습니다. size 함수는 자료구조 객체에 포함된 원소의 개수를 리턴하는 간단한 함수입니다. 저 같은 경우에는 이 size 값에서 다른 숫자를 빼주면서 음수 여부를 체크하려고 했는데 코드가 이상하게 동작했습니다. 비슷한 다른 사례를 찾아보니 아래와 같은 코드에서 문제가 발생하는 경우가 많았습니다. vector v; for (int i=0;i

반응형