모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    배터지리안님의
    개인페이지입니다
    가입 : 13-04-26
    방문 : 3563회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_2322
    작성자 : 사원대우임원
    추천 : 4/4
    조회수 : 764
    IP : 112.216.***.178
    댓글 : 4개
    등록시간 : 2014/04/02 19:11:30
    http://todayhumor.com/?programmer_2322 모바일
    The C PROGRAMMING LANGUAGE 해설
    <div>== CHAPTER 1: A Tutorial Introduction ==</div> <div><br /></div> <div>=== 1.1 Getting Started ===</div> <div><br /></div> <div>* #include <stdio.h></div> <div><br /></div> <div>#include는 컴파일러에게 include 하라고 시키는 명령 같은 겁니다. 우리 말로는 보통 "인클루드" 라고 부릅니다. </div> <div>C는 이런 식의 명령들이 있는데요, "compiler directive", 우리말로 "컴파일러 지시자" 라고 부릅니다.</div> <div>항상 #으로 시작하며, 이 #을 "preprocessor operator" 우리말로 "전처리 연산자"라고 부릅니다.</div> <div>이 문장은 CPU가 이해할 수 있는 기계어로 번역되지는 않습니다.</div> <div>컴파일러를 우리가 주문한 대로 번역해 주는 사람이라고 한다면, 이 문장은 번역해 달라고 쓴게 아니고 번역가에게 전달하는 포스트잇 메모 같은겁니다.</div> <div>여러 컴파일러 지시자가 있는데 가장 많이 쓰는게 #include 입니다.</div> <div><br /></div> <div>#include는 컴파일러에게 뒤에 나오는 파일을 이 위치에 끼워 넣으라는 지시자입니다.</div> <div>여기서는 stdio.h 라는 파일을 열어서 전체 복사를 해서 이 자리에 붙여 넣으라는 뜻입니다. (소스코드가 진짜 바뀌는건 아닙니다)</div> <div>컴파일러는 기계어로 번역하기에 앞서 이 지시를 수행합니다.</div> <div><br /></div> <div>* <stdio.h></div> <div>stdio.h 파일은 어디에 있을까요? 신경 안 써도 됩니다. 파일명을 < >로 감싸 놓으면 미리 약속된 디렉토리를 뒤져서 stdio.h를 찾게 됩니다.</div> <div>이런 파일을 헤더(header) 파일이라고 부르는데요, 일반적으로 h 라는 확장자를 사용합니다.</div> <div><br /></div> <div>C로 코딩을 하면 일상적으로 헤더 파일을 만들어 쓰게 됩니다. 보통 .c 파일 하나당 .h 파일을 하나 만들고, 공통적으로 쓸 .h 파일을 몇 개 더 만들어 씁니다.</div> <div><br /></div> <div>우리말로는 보통 어떻게 읽는지 모르겠는데, 저는 "에스티디아이오 쩜 에치"라고 읽습니다.</div> <div>처음에 "스튜디오 쩜 에치"라고 읽은 사람도 있을 겁니다.</div> <div>stdio가 맞고요, std는 standard, io는 input/output을 뜻합니다. 따라서 stdio는 "표준 입출력"을 의미합니다.</div> <div>C에서는 이렇게 줄여서 쓰는게 관례인데요, printf 함수도 print + format 을 줄여 쓴 겁니다. 형식을 맞춰서 출력한다는 뜻이죠.</div> <div>유닉스를 만든 분이 C를 만들어서 유닉스 명령어과 C의 함수명은 느낌이 비슷합니다. (엄청 짧습니다)</div> <div><br /></div> <div>비주얼 스튜디오(앞으로 VS 라고 합시다)에서 stdio.h 위에 커서를 갖다 놓고 오른쪽 클릭해서 팝업메뉴를 열면 stdio.h 파일을 불러 올 수 있습니다.</div> <div>표준 헤더 파일이니까 수정하지는 말고 보기만 하세요. 다양한 컴파일러 지시자가 보일거고 잘 찾아보면 printf도 나옵니다.</div> <div><br /></div> <div>실제 찾아보니 이렇게 나오네요.</div> <div>_Check_return_opt_ _CRTIMP int __cdecl printf(_In_z_ _Printf_format_string_ const char * _Format, ...);</div> <div>너무 복잡하니까 stdio.h에는 이렇게 여러 함수들이 들어 있다는 것과 stdio.h를 include 하면 이 함수들을 모두 쓸 수 있게 된다는 것만 알고 넘어갑시다.</div> <div><br /></div> <div>* main()</div> <div>C로 만든 모든 프로그램은 main 함수가 하나씩 있습니다. 우리 말로는 그냥 "메인함수" 라고 부릅니다. </div> <div>커맨드 창에서 우리 프로그램을 실행시키던, 윈도 탐색기에서 더블 클릭해서 실행시키던 제일 먼저 실행되는게 이 함수입니다.</div> <div>이건 약속입니다. 컴파일러가 약속을 지켜서 이 함수를 실행파일의 제일 먼저 실행되는 위치에 넣어 줍니다.</div> <div><br /></div> <div>C의 함수는 ()가 무조건 있어야 하며, {}로 둘러 싼 부분이 실행됩니다.</div> <div><br /></div> <div>* printf("hello world\n");</div> <div>우리 말로는 "프린트에프" 라고 부르는게 대세인거 같습니다. </div> <div>printf()는 함수입니다. 함수란 실행할 일들을 묶어 놓은 것입니다. 묶을 때는 {와 }를 사용하고요, 그럴싸한 이름을 붙이고 괄호 ()를 써 줍니다.</div> <div>이 괄호 안에 함수에게 전달하고 싶은 것을 적어줍니다.</div> <div>여기서는 화면에 출력하는 함수를 부를 때 "hello world\n"라는 문자열을 넘겨 준겁니다. </div> <div><br /></div> <div>C 프로그래머에게 제일 중요한게 함수인데요 여기까지만 알고 넘어갑시다.</div> <div><br /></div> <div>* "hello, world\n"</div> <div>C에서 쌍따옴표로 문자열을 표현합니다.</div> <div>홑 따옴표로 문자열을 포함하는 언어도 있고, 둘 다 사용 할 수 있는 언어도 있습니다.</div> <div>C는 홑 따옴표를 한 개의 문자를 표현하는데 씁니다. 완전히 다르므로 주의해야 합니다.</div> <div><br /></div> <div>* \n</div> <div>줄 바꿈을 표시하기 위해 쓴건데요, 이런 특수한 문자 표현식을 escape sequence라고 하고 우리말로는 "제어문자"라고 합니다.</div> <div>\n 자체를 우리말로 부를 땐 그냥 "역슬래쉬 엔"이 대세인거 같습니다.</div> <div><br /></div> <div>만약 이런 표현 방법이 없었다면 아래처럼 써야 했을 겁니다.</div> <div><br /></div> <div>printf("hello world</div> <div>");</div> <div><br /></div> <div>world 뒤에 공백을 몇 개 넣어야 한다면 알아보기 매우 어려워집니다. \n 이라고 쓰는게 낫죠.</div> <div>소스코드에서 구분하기 어려운 문자들을 뽑아서 역슬래쉬 다음에 이어 쓰는걸로 정해 놓은겁니다.</div> <div>만약 hello world를 출력하지 않고</div> <div>hello "world" 를 출력하고 싶다면 </div> <div><br /></div> <div>printf("hello \"world\"\n"); 라고 고쳐주면 됩니다. </div> <div><br /></div> <div>처음엔 읽기 어려운데 익숙해지면 눈에 들어옵니다.</div> <div><br /></div> <div><br /></div> <div>* ;</div> <div>C언어의 모든 문장은 ;(세미콜론)으로 끝나야 합니다.</div> <div>제일 많이 실수하는게 바로 세미콜론 빼먹는거 입니다.</div> <div>일부러 빼고 빌드 해보세요. 다음과 같은 에러 메세지가 나옵니다.</div> <div><br /></div> <div>error C2143: 구문 오류 : ';'이(가) '}' 앞에 없습니다.</div> <div><br /></div> <div>요즘 컴파일러는 꽤 친절해서 오류의 원인을 이렇게 자세히 알려줍니다. 그러니 오류 메세지를 잘 읽어보세요.</div> <div>VS에서는 오류메세지를 더블클릭하면 해당 오류가 발생한 소스코드로 이동합니다.</div> <div><br /></div> <div>* cc 와 a.out</div> <div>책에는 cc로 빌드하고 a.out을 실행한다고 나옵니다.</div> <div>유닉스 계열에서는 이렇게 합니다. C만 해도 어려운데 유닉스가 왠 말입니까?</div> <div>저는 익숙한 윈도 환경에서 실습 하는걸 권장합니다.</div> <div><br /></div> <div>cc는 C 컴파일러를 실행하는 것이고, 유닉스 계열은 대개 C 컴파일러가 설치 되어 있습니다.</div> <div>리눅스를 기본 옵션으로 깔아도 아마 gcc 라는 C 컴파일러가 설치될 겁니다.</div> <div><br /></div> <div>컴파일러는 옵션이 무척 많습니다. 책의 hello world 예제는 아주 간단하기 때문에 별다른 옵션을 지정하지 않아도 잘 빌드될 겁니다.</div> <div>빌드 결과인 실행파일이 a.out 이라는 이름으로 같은 디렉토리에 생성됩니다. </div> <div>왜 하필 a.out 이라고 만들까요? 재미있는 스토리가 있을거 같습니다. 구글에 "why a.out" 라고 검색해 보니 어셈블러가 a.out을 기본 실행파일명으로 사용하기 때문이라고 나오는군요.</div> <div>더 찾아보고 싶어지네요.</div> <div><br /></div> <div>만약 콘솔에서 a.out이라고 쳐도 실행이 안 되고 command를 찾을 수 없다고 나온다면</div> <div>./a.out 이라고 치면 됩니다. 현재 디렉토리의 a.out 을 실행시키라는 뜻입니다.</div> <div><br /></div> <div>오늘은 여기까지인데요, 책에서는 불과 두 페이지 반 밖에 안 되는 분량입니다. 아...</div>

    이 게시물을 추천한 분들의 목록입니다.
    [1] 2014/04/02 19:13:38  220.122.***.126  신들린허리  320184
    [2] 2014/04/02 19:15:43  211.211.***.51  어묵머겅  529501
    [3] 2014/04/02 23:14:43  121.134.***.102  헬로월드!  522319
    [4] 2014/04/02 23:37:53  59.187.***.26  thinkabchu♥  445403
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    18
    혼내줘야 할 집 지도 [1] 배터지리안 19/09/11 15:46 1980 17
    17
    능력자 친구 얘기 [1] 창작글 배터지리안 18/02/09 14:30 799 5
    16
    창문 하자 어떻게 대응해야 할지 도움 부탁드립니다 [7] 창작글본인삭제금지 배터지리안 17/06/21 16:55 62 1
    15
    마인크래프트 블록 액자 [5] 배터지리안 17/06/04 16:14 52 10
    14
    본격 물리학과 지구과학 콜라보 SF 소설 창작글 배터지리안 16/04/23 22:27 41 0
    13
    우리 아이가 김치를 다 찾네? [23] 배터지리안 16/03/21 13:20 187 10
    12
    MariaDB로 RANK() ORVER PARTITION BY 흉내 내기 [1] 창작글 배터지리안 15/11/19 14:12 23 3
    11
    보일러 원격 제어 [4] 배터지리안 15/11/01 19:43 59 2
    10
    아이폰으로 밤하늘 찍기 [4] 배터지리안 15/09/19 23:08 43 1
    9
    자동으로 움직이는 유모차 [7] 창작글 배터지리안 15/08/21 11:21 57 2
    8
    발치몽 앱 등장 [1] 배터지리안 14/11/07 10:30 421 10
    7
    대통령님 경제 좀 살려주세요. 사원대우임원 14/09/26 12:01 70 1
    6
    오리온이 욕 먹어가며 과대포장에 매달리는 이유 사원대우임원 14/04/15 19:15 201 4
    5
    The C PROGRAMMING LANGUAGE 해설 사원대우임원 14/04/04 18:32 20 0
    The C PROGRAMMING LANGUAGE 해설 [2] 사원대우임원 14/04/02 19:11 25 2
    3
    The C PROGRAMMING LANGUAGE 해설 사원대우임원 14/04/01 20:24 20 0
    2
    The C PROGRAMMING LANGUAGE 해설 [1] 사원대우임원 14/04/01 00:30 18 0
    1
    이 곳은 개강과 동시에 숙제 게시판이 될 것입니다. [11] 사원대우임원 14/01/14 17:25 213 14
    [1]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈