본문 바로가기

프로그래밍 언어/C3

[C] 컴파일 과정 전처리 - 컴파일 - 어셈블 - 링크 전처리 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환 include파일과 매크로는 어디서 실행되는가? 전처리기 preprocessor에서 처리한다 include 파일 매크로(macro) 컴파일러 오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환 어셈블러 목적 코드(Object code) 로 변환 리눅스의 경우 .o 파일 ex) test.c -> test.o 링커 프로그램 내에 있는 라이브러리 함수 또는 다른 파일들과 목적 코드를 결합하여 실행 파일을 만듬 실행 파일 확장자 : .exe, .out .exe 파일은 윈도우에서 만들어지고 .out 파일은 맥에서 만들어짐 정적 라이브러리와 동적 라이브러리 라이브러리 정적 라이브러리 .. 2023. 5. 20.
[C] 매크로(macro) 매크로(macro) 상수나 자주 사용하는 표현식과 같이 다른 이름으로 대체한 이름 ex) N을 10으로 대체 #define N 10 매크로(macro) 종류 단순 매크로 (simple macro) 매개변수 매크로 (parameterized macro) 단순 매크로(simple macro) 매개 변수가 없는 매크로를 단순 매크로라 한다. #define #define 식별자 대체목록\식별자가 대체목록을 의미하게됨\ #define N 10 대체 목록 : 식별자, 키워드, 숫자 상수, 문자 상수, 문자열 리터럴, 연산자 등을 포함 장점 프로그램의 가독성을 높혀줌 프로그램의 수정성을 높혀줌 일관성 없는 코드나 오타 방지 매개변수 매크로 (parameterized macro) #define #define 식별자(x.. 2023. 5. 18.
[C 언어] 전처리기 전처리기(preprocessor) 컴파일 이전 C 프로그램을 수정해주는 소프트웨어 전처리기는 전처리 지시자에 의해 제어된다 전처리 지시자 : #으로 시작하는 명령어 ex) #define, #include #define 지시자는 매크로(macro)를 정의한다. 매크로(macro)란? : 상수나 자주 사용하는 표현식과 같이 다른 이름으로 대체한 이름 ex) N을 10으로 사용 test.c #include #define N 10 int main(void) { printf("%d", N); return 0; } > gcc -Wall -Wextra -Werror test.c > ./a.out 10% 전처리기의 출력물을 보고싶을 경우 gcc에서 -E 옵션 사용 전처리기의 출력물을 확인하는 이유 : 전처리기가 지시자.. 2023. 5. 18.