순서
1. C언어 공부
2. 컴파일 to RUN
- gcc를 통해 컴파일 하고 RUN(실행)하기
- clang
- c99
-웹에서 코딩(아래 웹 링크 클릭)
새 C 프로그램 만들기 - 마이컴파일러 - myCompiler
실행 코드 코드 저장 기존 코드를 유지하시겠습니까? 에디터에 코드가 있는 동안 언어를 전환하려고 합니다. 이를 유지하려면 “기존 코드 유지”를 선택합니다. 예제로 바꾸려면 “예제로 바
www.mycompiler.io
내가 C언어를 시작하는 이유
Python 만 가지고 공부를 하고 개발을 하던 내가 C언어를 선택하여 공부하게 된 계기는 자료구조와 알고리즘의 중요성을 알게 되었기 때문이다.
자료구조와 알고리즘에 대해서 알아가다보니 이를 조금더 확실하게 실질적으로 눈으로 보며 이해하기 위해서는 C언어의 pointer라는 부분을 학습할 필요를 느끼게 되어 C언어 공부를 시작하게 되었다.
C언어란?
1970년대 개발한 프로그래밍 언어이다.
오늘날 많은 프로그래밍 언어들의 기반이 되었다.
하드웨어와 가까운 수준에서 작동하면서도 고급언어(사람이 알아들을 수 있는 언어)의 특징을 가지고 있어, 성능면에서도 효율성 면에서도 좋은 언어라 할 수 있다.
C언어를 왜 배워야할까?
(1) 프로그래밍의 기초 이해 : C언어는 자료구조와 메모리 관리에 대해서 핵심 개념을 깊이 있게 다룬다. 하드웨어와 가까운 언어이기에 이를 이해하기 좀 더 수월하다고 볼 수 있다. (나는 이 부분이 가장 메리트 있게 느껴져서 C로 공부를 다시 시작하게 되었다.)
(2) 다른 언어 학습에 유용 : C++, Java, C#, Python 등 많은 언어가 C언어에 기반을 두고 있다고 해도 과언이 아니다.
(3) 성능 최적화 : C는 컴파일된 코드의 실행 속도가 빠르고 메모리 사용이 효율적이다. 쉽게 말하면 컴퓨터가 이해하기 빠르기에 처리 속도가 빠르고 빠르다는 것은 성능이 좋다고 이해하면 된다.
[이로서 아래와 같은 이점이 있다고 보여진다.]
- 기본기 강화 : 고급 언어만 사용하다보면 놓치기 쉬운 기본 개념들을 탄탄히 공부할 수 있다고 생각한다.
- 디버깅 능력 향상 : 이 부분이 불편하겠지만 실력향상에는 분명 도움이 될 것이라고 생각한다.
- 효율적인 코드 작성 : 자원 제약이 있는 환경에서 최적화된 코드를 작성하는 방법을 배울 수 있다.
(요즘은 게임 용량 팍팍 넣어서 별 상관 없는 것 같지만서도 아직도 코딩테스트를 대기업에서 보는 것을 본다면 결코 간과해서는 안되는 부분인 것 같다.)
- 문제 해결 능력 강화 : 저수준에서 문제를 해결하다보면 논리적 사고와 문제 해결 능력이 자연스럽게 향상된다.
(성냥개비를 갖고 놀던 장동민은 더 지니어스 3블렉가넷과 4그랜드 파이널에서 우승을 하였다.)

2. 컴파일 to RUN
-코드작성
아래와 같이 코드를 작성한 후 파일을 저장한다.
저장하는 파일명을 마음대로 하되 확장자 명을 c로 해주도록 한다.
나는 c1.c라고 파일을 만들었다.
c1.c 파일은 소스코드라고 부르며 컴파일 되기 전 상태를 의미한다.
[c1.c]
#include <stdio.h>
int main(void){
double A[5] = {
[0] = 6.0,
[1] = 45.9,
[4] = 3.2,
[3] = .00004,
};
for (size_t i = 0; i < 5; ++i){
printf("%zu : %g ^2 = %g\n",
i,
A[i],
A[i]*A[i]);
}
return 0;
}
(위 코드의 내용을 지금은 알 필요가 없다. 어떻게 '실행(RUN)'을 시키는 지에 집중해주기 바란다.)
이제 이 파일을 실행시키기 위해서는 *컴파일 하는 과정이 필요하다.
mac 사용자는 gcc, clang, c99을 이용하여 코드를 컴파일하여 파일로 저장할 수 있다.
(macOS 라면 clang은 이미 설치가 되어있다고 한다.)
*컴파일 : 코드를 컴퓨터가 알아들을 수 있는 바이너리(binary) 또는 실행파일(executable) 형태로 번역해주는(바꿔주는) 과정
- gcc로 컴파일 하고 RUN 하기(+ 알아보기)
[gcc 설치 및 실행방법]
(1) Xcode / Xcode Command Line Tools 설치
gcc는 Xcode를 전체 다 설치하지 않고 Xcode Command Line Tools만 설치하면
Xcode Command Line Tools에 내장된 C/C++컴파일러(gcc clang)이 있어서 바로 실행 가능하다.
아래와 같이 설치하면 된다.
xcode-select --install
그리고 바로 gcc를 terminal에 입력하면 라이선스 동의가 필요하다고 하는데 동의를 해주면 된다.
시키는 대로 하면 되고 잘 안되면
terminal에 아래와 같이 입력하여 동의를 할 수 있다.
sudo xcodebuild -license
입력하면 라이선스 내용이 쭉 나오고 끝까지 읽은 후 agree를 입력하면 될 것이다.
+아마 본인의 mac의 비밀번호를 입력해야 할 것이다.
먼저 terminal을 통해 c1.c 파일이 있는 경로로 이동 후
아래와 같이 명령을 입력한다.
(base) yoonyoon@yunseongchan-ui-MacBookPro modernc % gcc c2.c -o c2
위 명령어를 해석하자면 gcc를 이용해 c2.c 파일을 열어(-o) 컴파일 하고 c2라는 이름으로 저장해준다. 라는 뜻이다.


왜 파일을 열어볼 수 없을까?
컴퓨터는 바보라서 1차원적으로 어떤 전기가 on, off 되는 것을 보고 정보를 알아들을 수 있다.
그걸 0, 1로 표현하는 것 조차도 얘는 못알아듣는다는 것이다.
그래서 컴퓨터가 알아듣는 어떤 외계어로 저장되어있는 것이 아래와 같은 모습이라고 보면 될 것 같다.
중간중간 우리가 알아볼 수 있는 문자들도 보이지만 기본적으로 우리가 보는 단위는 byte(2^8) 단위이고
컴퓨터가 알아듣는 단위는 bit(2) 단위 이기 때문에 그런거라고 이해하면 좋을 것 같다.
즉, 다른 차원의 언어를 듣는 것이고 그를 마땅히 표현할 방법도 없다는 것이다.

이제 위 파일을 실행하기만 하면 된다.
terminal에 현재 디렉토리에 있는 c1파일을 실행해보도록 한다.
./c1

이런식으로 파일을 실행하면 된다.
c1.c의 파일이 아래와 같이 실행되는 것을 볼 수 있다.
다른 언어를 이미 공부해 본 사람이라면 vscode에서 RUN을 하면 바로 된다고 생각하지만
C언어는 조금 다르다. 컴파일 한 파일을 terminal을 통해 실행시켜줘야 한다.
- clang으로 컴파일 하고 RUN 하기
linux 나 macOS같은 POSIX시스템이라면 대부분 기본적으로 c99라는 C컴파일러가 제공된다.
clang c1.c -o c123
clang 컴파일러를 사용하여 c1.c 파일을 열고(-o) 컴파일 해주고 c123 이라는 파일로 저장해준다.

여기서 만들어진 c123파일은 c1파일과 거의 흡사할 것이다.

실행하면 위에서 gcc로 실행한 파일과 동일하게 실행되는 것을 볼 수 있다.
(사실 mac에서 gcc는 clang을 가리킨다고 한다. 그래서 그냥 같을 수 밖에 없는 것 같다.
mac에서 gcc를 실행하면 실제로는 clang이 작동한다고 한다.)
- gcc으로 컴파일 하고 RUN 하기
c99 -o c135 c1.c

c99컴파일러를 사용하여 c1.c 파일을 열어(-o) 컴파일하고 c135 파일로 저장한다.

실행이 잘 되었다.
앞으로 이런 과정을 알고 C언어에 대해서 하나씩 알아보도록 하자.
'study > C' 카테고리의 다른 글
| C언어 문법 printf_C(3) (2) | 2024.10.07 |
|---|---|
| C언어 시작하기_C(2) (0) | 2024.10.02 |