본문 바로가기

Language/C6

[C/C++] #if ... #elif ... #endif 할때 정의 조건문 넣는방법 - TEST가 정의되어 있을때 int a = 10, TEST2가 정의되어있을때는 int a = 20, 둘다 정의 안됬을때는 int a 불필요// 기존방법#ifdef TESTint a = 10;#elif#ifdef TEST2int a = 20;#endif#endif #if defined를 이용한 방법#if defined(TEST)int a = 10;#elif defined(TEST2)int a = 20;#endif 2024. 4. 27.
[C] typedef struct와 타입 전방 선언으로 인한 C2371 오류 // Error.h #pragma once struct Test; class Error { public: void Callfunction (Test& ref); }; // Test.h typedef struct _Test { int a; } Test; // Error C2371 /* 혹은 이름을 생략하고 선언한 경우 typedef struct { int a; } Test; */위와 같이 Error.h에서 구조체 Test를 전방선언하고 Test.h에서 Test를 정의하는 경우 C2371오류가 발생한다. 해결방법 1. 태그명과 타입명을 동일하게 정의 // Test.h typedef struct Test { int a; } Test;2. typedef를 사용하지 않고 구조체 정의 // Test.h struct.. 2023. 1. 3.
[C] printf 서식문자 이번 포스팅은 Type별 printf의 서식문자가 아니고 출력할 크기 및 옵션을 지정하는 서식문자에 대한 포스팅이다. 크기 및 옵션 Format: %[flags][width][.percision]specifier [flags]와 [width]옵션 width 옵션 설명 숫자 숫자 만큼의 자리수로 출력 * * 에 들어가는 변수값의 자리수로 출력 flag 옵션 설명 - 왼쪽 정렬로 출력 (Defalut: 오른쪽 정렬) # 8진법, 16진법 표기에 맞추어 0 혹은 0x를 출력 + 양수에는 +, 음수에는 - 기호를 붙여서 출력 (빈칸) 양수일때는 빈칸, 음수일때는 - 기호를 붙여서 출력 0 남는 공간을 0으로 채워서 출력 /* flags 및 width 옵션 예제 */ printf("%5d", 3); // outp.. 2022. 9. 16.
[C, C++] 가변인자를 가지는 매크로 구현하기 1. 가변인자만을 가지는 매크로 구현 #include #define PRINT(...) printf(__VA_ARGS__) int main() { PRINT("print\n"); // output : print PRINT("%d %d\n", 1, 2); // output : 1 2 return 0; } 2. 가변인자와 고정인자를 가지는 매크로 구현 #include #define PRINT(fixVar, ...) printf(fixVar, ##__VA_ARGS__) int main () { PRINT("print\n"); // output : print PRINT("%d %d\n", 1, 2); // output : 1 2 return 0; } 가변인자와 고정인자를 가지는 매크로 구현할때는 __VA_ARG.. 2022. 8. 19.
[Complie Process] 컴파일의 4단계 과정 이번 포스팅에서는 Complie과정에 대해서 설명한다. 간단히 말해, Complie이란 high level language를 기계가 이해할 수 있는 low level language로 변환시켜주는 작업을 의미한다. C 언어로 짜여진 언어가 컴파일 과정을 거치면 실행파일이 생성되는데 이 세부 과정을 설명한다. 1. 전처리기 (Preprocessor) # 으로 시작하는 구분을 처리하는 역할을 하는 것이 전처리기이다. 일반적으로 #define, #include, #if ~ #endif 등의 구문을 처리한다. .c -> .i 2. 컴파일러 (Complier) 고수준의 언어를 저수준 언어로 변환시켜주는 역할을 수행한다. .i -> .s 3. 어셈블러 (Assembler) 저수준언어를 완전한 기계어로 바꿔주는 역할.. 2022. 2. 3.
[C] ANSI Escape sequences ANSI 이스케이프 코드는 디스플레이 그래픽을 변경하고, 커서 이동을 제어하고, 키를 재할당하는 기능을 정의합니다. ANSI 이스케이프 시퀀스는 일련의 ASCII 문자로, 처음 두 문자는 이스케이프 문자(1Bh)와 왼쪽 대괄호 문자(5Bh)입니다. 이스케이프 및 왼쪽 대괄호 뒤에 오는 문자는 키보드 또는 디스플레이 기능을 제어하는 ​​영숫자 코드를 지정합니다. ANSI 이스케이프 시퀀스는 대문자와 소문자를 구분합니다. 예를 들어 "A"와 "a"는 완전히 다른 의미를 갖습니다. 아래에서는 커서 위치 지정에 사용되는 명령을 제시합니다. 전체 세트를 보려면 여기에서 메인 페이지를 확인하세요. ANSI 이스케이프 시퀀스에 사용되는 매개변수 Pn - 숫자 매개변수. 십진수를 지정합니다. Ps - 선택적 매개변수... 2021. 10. 4.