odecademy - Learn C / Chap.1 Hello World

3260 단어 CODECADEMYCC

공부 동기

내가 현재 다니고 있는 학교에서는 1학년 컴공 전공기초로 C를 배운다. 그 이후에도 CS과목들에서 C++과 C를 사용한다. 나는 지금 반학기를 수료한 1학년이고, 2학기에 복학할 예정이다. 전공강의는 일물과 미분적분학을 제외하고는 듣지 않았다. 그래서 사실 C를 배운 적이...없다!ㅎㅎ 그래도 최대한 개발을 일찍 시작해서 칼취하고 싶기도 하고, 또 휴학하고 있는 지금 이 시간을 헛되게 보내고 싶지는 않아서... 전공에서 사용하는 C라도 배워보려고 한다.

C언어의 문법

휴.. 사실 C공부 해본 적은 있다^^ 근데 자료형까지 하고 너무 재미없어서 때려쳤달가... 그래서 자료형 전까지는 다 아는 내용임 어쩔 수 없음 하지만 견딘다

// Statements must end in a semicolon (;)
// correct
printf("Hello World!");
 
// error
printf("Hello World!")
  
// Code elements are case sensitive
// correct
printf("Hello World!");
 
// error
PRINTF("Hello World!");

코드카데미 치트시트를 복붙했다.

문법

  • 모든 statements가 세미콜론으로 끝나야 함 statements 한국어 번역을 모름...
  • 대소문자를 정확히 지켜야 함 (각주랑 따옴표 안에 들어간 글 빼고)
  • 문자열은 언제나 큰따옴표 안에

오.. 이와중에 따옴표를 따옴표라고만 해서 찾아보니까 작은따옴표도 쓰는구나 근데 그건 char에... 신기방기

Hello World 코드 분해하기

#include <stdio.h>

int main(){
	// output a line
    printf("Hello World!");
}

한 줄씩 떼보자.

#include <stdio.h> : 라이브러리를 불러옴. 이게 없으면 printf가 뭔지를 몰라서 실행이 안 됨..
stdio.h 위키피디아 지원하는 함수 목록 확인 가능
C 표준 라이브러리 위키피디아 C에는 이외에도 다양한 라이브러리가 있다.. 각각의 헤더파일과 소개가 적혀있음

int main() : 코드가 시작하는 부분..이라고 코드카데미 설명에 적혀있다ㅎㅎ
근데 이거 int를 char 같은 걸로ㅋㅋㅋㅋ 바꿔도 실행이 됨...
사실 메인함수의 기능을 아직 잘 모르겠음 ^!^ void main은 리턴값이 없고, int main은 정수로 리턴하는데 그 리턴값을 운영체제가 받아서 프로그램이 정상적으로 종료되었는지를 확인한대... 근데 왜.. 그런 일을 하는지... main 함수가 뭘 하길래 그런 값을... 리턴하는지... 아는 것이 전무.... char 쓰지 말라는데 왜 그런건지.... 뭐 하다보면 알겠...지? 스택 오버플로우도 열심히 읽고 했는데 이해를 못 했다ㅋㅋㅜ
어차피 내 주언어는 c가 아닐 예정이니까 몰라도 되.려나? ㅋㅋㅋ

//어쩌구 : 각주임
한 줄로 넣고 싶을 때는 // 어쩌구
블락으로 넣고 싶을 때는 (강의 직역중^^) /* */ 을 사용

printf("Hello World!") : 출력함수
"Hello World!"를 콘솔에 출력함.
보기 좋게 escape sequence (번역 모름)을 사용하기도 함
소개된 건 \n (뉴 라인을 추가), \t (탭 키랑 동일)
공식문서 비트가 어쩌구하는거 진짜 무슨... 뜻일가 CS 공부하면 이해되려나?

컴파일러

파일의 코드를 읽고 컴퓨터가 실행가능한 코드로 말로만 듣던 어셈블리어?? 변환시킨다.
C에서 가장 많이 사용되는 컴파일러는 gcc.
터미널에 입력하는 커맨드를 알아보자면

gcc helloWorld.c -o helloWorld

gcc : gcc 실행
helloWorld.c : helloWorld.c라는 파일을 불러온다
-o helloWorld : 필수는 아닌데 보통 씀. 컴파일러가 helloWorld란 이름으로 executable을 output하도록 명령. 안 쓰면 파일 이름은 a.out이 됨.

./helloWorld

helloWorld executable 실행.

마무리

이렇게 코드카데미 C 강좌 첫 번째 챕터의 요약을 끝냈다.
개발자들이 빨리 배우려면 이것저것 호기심을 많이 가지라고 했는데^^... 내가 이해할 수가 있어야지 그냥 궁금해하기만 하고 배우는 건 없는 기분... 그래도 도움이 되겠지?
아직 갈 길이 너무 멀지만 뭐 앞으로도 꾸준히 열심히 해야겠다!
홧팅~

좋은 웹페이지 즐겨찾기