본문 바로가기
728x90

전처리기3

헤더파일 순환참조 에러메세지와 해결방법(Include Guard와 전방 선언) 헤더파일 순환참조 에러메세지와 해결방법(Include Guard와 전방 선언)헤더파일 순환참조는 두 개 이상의 헤더파일이 서로를 포함하려고 할 때 발생하는 문제입니다. 예를 들어, A.h 파일이 B.h 파일을 포함하고, B.h 파일이 다시 A.h 파일을 포함하면 순환참조가 발생합니다. 이런 상황은 컴파일러가 파일을 처리하는 방식 때문에 문제가 됩니다. 컴파일러는 전처리기 단계에서 #include 지시문을 따라 파일을 포함하는데, 이 과정에서 동일한 파일이 여러 번 포함될 수 있어 무한 루프에 빠지거나 컴파일 에러가 발생하게 됩니다.순환참조 에러메세지 유형헤더파일 순환참조가 발생하면 일반적으로 다음과 같은 컴파일 에러 메시지가 나타납니다. 이 메시지들은 컴파일러에 따라 다를 수 있지만, 공통적으로 순환참조.. 2024. 5. 24.
[c,c++] #ifndef 과 #if !define()의 차이점 #ifndef 과 #if !define()의 차이점 #ifndef과 #if !defined()은 모두 전처리기 지시어로, 매크로의 정의 여부를 확인하는 데 사용됩니다. 그러나 두 지시어의 사용 방법에는 약간의 차이가 있습니다. #ifndef의 특징: 읽기 쉽고 간결: #ifndef은 "만약 정의되어 있지 않다면"이라는 의미로 자연스러운 문법을 가지고 있습니다. 코드가 더 읽기 쉽고 간결할 수 있습니다. 전통적인 사용: #ifndef은 전통적으로 많은 코드베이스에서 사용되어 왔기 때문에 익숙한 문법입니다. #ifndef 예제: #ifndef DEBUG_MODE #define DEBUG_MODE #endif #ifdef DEBUG_MODE // 디버그 모드에서 수행되는 코드 #endif #if !define.. 2024. 1. 4.
[c,c++] 비트마스크 생성방법, 매크로 전처리기 ## 토큰결합연산 비트마스크 생성방법, 매크로 전처리기 ## 토큰결합연산 전처리기 토큰 결합 연산자 활용 : 예) 비트마스크 생성 토클 결합 연산자를 사용하면 매크로의 유연성을 향상시키고, 다양한 설정에서의 코드 재사용성을 높일 수 있습니다. 이는 특히 큰 프로젝트에서 설정 및 조건에 따라 동적으로 코드를 생성해야 할 때 유용합니다. #define BIT_NAME_MSK(PeriName,RegName,BitName) (PeriName##RegName##BitName##Msk) BIT_NAME_MSK(A, B, C)를 호출하면 매크로는 다음과 같이 동작합니다: PeriName은 A로 대체됩니다. RegName은 B로 대체됩니다. BitName은 C로 대체됩니다. 따라서 위의 매크로 정의에 따라 BIT_NAME_MSK(A, .. 2024. 1. 3.
728x90