C언어에서 서로 다른 크기를 가진 자료형을 비트 연산할 때 생길 수 있는 문제와 해결 방법을 정리했다.
본 글은 이전에 작성했던 “C언어 매크로 재정의 오류 원인과 해결 방법”과 이어진다.
개요 C언어에서 서로 다른 구조체 포인터를 캐스팅할 때의 작동 원리를 정리한다. 이를 통해 C에서도 구조체 레이아웃을 이용해 객체 지향 언어의 ‘업캐스팅’과 유사한 동작을 구현할 수 있음을 확인할 수 있다. 분석 대상 코드 구조체 정의 서로 다른 멤버를 가진 구조체가 있다고 하자. typedef struct parent_s { str...
정적 변수(static variable) 정적 변수는 프로그램이 실행되는 동안 계속 유지되는 변수이다. 지역 변수는 함수가 실행되는 동안 해당 스코프 안에서만 생성되고, 함수가 끝나면 파괴되는데, 이와 달리 정적 변수는 함수가 끝나도 값이 그대로 유지된다. 정적 변수를 선언하는 방법은 다음과 같다. static 자료형 변수명; 정적 변수의 ...
들어가며 C언어의 printf 함수는 다양한 서식 지정자와 함께 여러 옵션을 함께 사용해서 데이터를 원하는 대로 출력할 수 있다. 이 글은 서식 지정자에 대한 설명보다는 정밀도와 width를 서식 지정자와 활용했을 때 어떤 결과가 나오는 지 다양한 케이스를 바탕으로 정리하였다. 서식 지정자를 모두 살펴볼 수는 없기에 여기서는 %s(문자열), %d...
[C언어] 매크로 재정의 오류 원인과 해결 방법 (GCC 전처리기 기준)
-