소스코드 -> 컴파일러 -> 머신코드
code hello.c // 소스코드 파일 생성
make hello // 컴파일
./hello // 코드 실행
실제 컴파일링 과정
(1) Preprocessing (전처리 단계):
- 소스 코드에서 주석 제거, 매크로 확장 등의 작업을 수행.
- 전처리기는 #로 시작하는 지시문을 처리하여 소스 코드 수정.
(2) Compiling (컴파일링):
- .c 파일을 컴파일러를 사용하여 목적 코드인 어셈블리 코드로 변환.
(3) Assembling (어셈블링):
- 어셈블러를 사용하여 목적 코드를 기계어 코드로 변환.
(4) Linking (링킹):
- 여러 목적 코드 파일과 라이브러리를 결합하여 실행 파일 생성.
- 링커가 최종적으로 실행 가능한 프로그램을 만듦.
배열, 문자열
-문자열은 실제로 char의 배열일 뿐임
-문자열은 NUL이라고 불리는 특별한 캐릭터인 '\0'으로 끝남
string을 이렇게 표현할 수 있음
#include <cs50.h>
#include <stdio.h>
int main(void)
{
string s = "HI!";
printf("%c%c%c\n", s[0], s[1], s[2]);
}
'Web Development > CS' 카테고리의 다른 글
[CS50] Week3: Algorithms (0) | 2024.01.18 |
---|---|
[CS50] Week2: 컴파일링, 디버깅, 배열, 문자열, Command-Line Arguments, Exit Status, Cryptography, 2주차 과제 (0) | 2024.01.17 |
[CS50] Week 1: 데이터 타입, 연산자, 조건문, 반복문, 커맨드라인(CLI), 1주차 과제 (1) | 2024.01.11 |