같은 이름의 매크로를 중복으로 정의하면 warning이 발생한다. 이 경우 매크로의 값은 가장 아랫줄에 정의된 값으로 정해진다. 전처리기가 파일을 위에서부터 읽으면서 안 건너뛰고 성실히 수행하는 듯. 중복으로 3개, 7개씩 정의해봐도 가장 아래에 정의된 값으로 출
비트 연산과 관련하여 gcc 내부에 정의된 빌트인 함수들이 있다. 이를 사용하면 사용자가 직접 알고리즘을 구현해야 할 수고를 덜 수 있으며, 크면 단일 명령어 수준으로까지 코드가 줄어들기 때문에 코드 크기도 줄고 속도도 더 빨라진다.x의 값을 이진수로 나타냈을 때, 1
일반적으로 memset은 배열의 모든 원소를 특정 값으로 초기화하기 위해 사용된다. 문제는 memset은 byte 크기의 배열을 대상으로 사용해야 한다는 점이다.short나 int형 배열을 대상으로 memset을 사용할 때는 0 또는 -1로 초기화할 때만 사용하여야 한
공유 라이브러리에 뮤텍스를 적용해야 하는 문제가 있었다. 그 공유 라이브러리는 I2C 통신 라이브러리였으며, 리눅스 상에 약 7~8개의 백그라운드 프로세스가 로딩하여 사용하고 있었다. 정말 드문 경우지만, 복수 개의 프로세스가 해당 라이브러리를 동시에 호출하면 일명 쫑
printf 사용 시 출력되는 문자열에 색상을 입힐 수 있다. printf로 로그를 출력할 때 유용하게 쓸 수 있다.ANSI Escape Sequence를 사용하는데, 외우기가 어려워서 글로 정리하였다.아래의 방법으로 적용할 수 있다.방법:printf("\\033\[색
알고리즘 문제를 C/C++로 풀 때, 입출력 함수를 과연 C stdio vs C++ iostream 둘 중에 뭘로 쓸 것인가?실험의 발단은 이렇다."평소에 stdio를 즐겨 쓰던 필자는 과연 속도의 이점을 위해 iostream으로 갈아타야 하는가??"라는 궁금증이 생겨
어떤 문자열에서 원하는 문자열을 찾을 때strchr는 앞에서부터, strrchr는 뒤에서부터 찾는 함수이다."Hello, world" 라는 문자열에서 'o'를 반복적으로 찾아나가고자 할 때,strchr은 찾은 위치 + 1을 입력으로 다시 주면 된다.실행 결과strrch
qsort와 bsearch는 세트로 외우면 좋을 것 같다.둘이 사용법이 비슷한 데다가, 둘 다 PS에 유용한 함수이다.qsort는 C언어에서 정렬할 때 매우 빈번히 쓰인다.예제)실행 결과qsort와의 차이점은 검색할 때 쓰인다는 것이며,함수의 인자 맨 앞에 찾고자 하는
백준 1260번을 풀다가, 스택이랑 큐만 전환시키면 DFS에서 BFS로 서로 왔다갔다 할 수 있었으면 좋겠다는 생각이 들었다.그러면 구현 방법을 따로 외울 필요가 없어지니 편리할 것 같았다.백준 1260번: DFS와 BFShttps://www.acmicpc.n
vcpkg는 Microsoft에서 제공하는 C/C++ 패키지 관리자이다.Python의 pip, Node.js의 npm과 같이, C/C++ 환경에서 용이하게 패키지를 설치/삭제할 때 사용한다.간혹 윈도우 환경에서 C/C++로 개발하는 중 필요한 라이브러리가 생길 시, 공