활동 목표: C언어 개발환경 설정 및 기본 문법 학습
활동 결과
1. C언어 개발환경 설정
- C언어는 Python이 인터프리터를 사용하는 것과 달리 컴파일러를 사용한다.
컴파일러와 인터프리터의 차이
인터프리터 - 프로그램을 한 줄씩 읽어 실행시킨다. python과 같은 High Level 언어들이 주로 인터프리터를 사용한다.
컴파일러 - 프로그램을 한 번에 읽어 실행시킨다. C, JAVA 등과 같은 비교적 Low Level 언어들이 주로 컴파일러를 사용한다.
프로그램을 한 줄씩 읽어 실행시키기 때문에 인터프리터는 속도가 상대적으 느리다는 단점이 있다. 하지만 프로그램 수정이 간단하다는 장점이 있다.
컴파일러는 프로그램을 한 번에 읽어 한 번에 실행시키기 때문에 속도가 빠르다. 하지만 프로그램을 수정하려면 컴파일을 처음부터 다시 해야한다는 점에서 수정이 용이하지 않다는 단점이 존재한다.
직관적으로 인터프리터와 컴파일러의 속도 차이를 말로만 들었을 때 느껴지지 않을 수 있다. 따라서 이해를 돕기 위한 간단한 애니메이션을 첨부하겠다. https://youtu.be/Dx2tSsd3aFc
- GCC 설정
GCC란 C 컴파일러 중 하나이다.
GCC의 컴파일 과정은 다음과 같다.
1. 전처리 -> 전처리 파일
2. 컴파일 -> 어셈블리어 파일
3. 어셈블 -> 기계어(2진수)
4. 링크 -> 실행 파일
Visul Studio Code에서 GCC를 설정해주었다.
2. 기본 문법 학습
- #include <stdio.h>
처음에 이 구문이 주석인 줄 알고 이 줄을 빼고 코드를 작성했다가 오류가 났다...
가장 맨 처음에 Hello Word 를 출력하려다가 저 줄을 뺐더니 printf에서 오류가 난 것이다.
그래서 이 줄의 의미하는 것을 알아보니 standard input output(표준 입출력)을 h(헤더 파일)에 포함시키겠다는 것이다.
print, scanf 이 포함되기 때문에 대부분의 코드에 빠지면 안되는 구문이다.
- 변수
C에서는 변수를 선언할 때 자료형을 선언한다.
그리고 변수를 표현할 때 또한 자료형에 따라 다른 표현을 필요로 한다.
%d - int(정수)
%f - float(실수)
%lf - double
%c - char(문자)
%s - char(문자열)
- 반복문
for 문
for (초기 값; 조건 식; 증가/감소 값) {
실행;
}
while 문
while (조건 식) {
실행
}
do while 문
do {
실행;
} while (조건 식);
for 문과 while문은 거의 똑같아 보였기 때문에 의도에 따라 구분해서 사용하는 것으로 이해하였다.
do while문은 처음 보는 문법이지만 while문과 거의 똑같고 조건에 부합하지 않아도 한 번 실행할 수 있다는 차이를 느꼈다.
- 조건문
if문
if (조건){
실행;
}
else if (조건2){
실행;
}
else {
실행;
}
switch case 문
switch (변수) {
case 값1:
실행;
break;
case 값2:
실행;
break;
default:
실행;
}
if 문과 달리 switch case 문은 변수에 대한 값을 미리 지정해두어 일치여부를 판단한다.
겉으로 보기에는 같은 의미지만 구분지어 둔 이유가 있을 것이다.
결과적으로 switch 문은 if 문보다 효율적으로 프로그램을 작성할 수 있게 해준다.
if else문은 bool 값을 확인해야 하지만
switch 는 case가 이산적으로 나타나지므로 hash와 비슷한 로직을 사용할 수 있다(값과 주소를 mapping). 내부적으로는 jump table이라는 것이 만들어지게 된다.
더욱 자세히 알아보고 싶다면 control flow를 찾아보기 바란다.
'모각코' 카테고리의 다른 글
[2025 하계 모각코] 5회차 결과 - 구조체 (3) | 2025.07.29 |
---|---|
[2025 하계 모각코] 4회차 결과 - 메모리 구조와 동적 메모리 할당 (2) | 2025.07.24 |
[2025 하계 모각코] 3회차 활동 결과 - C언어 포인터 (3) | 2025.07.22 |
[2025 하계 모각코] 2회차 활동 결과 - C언어 표준과 전처리기(선행처리기) (2) | 2025.07.15 |
[2025 하계 모각코] 모각코 활동 계획 (0) | 2025.07.14 |