모바일 오유 바로가기
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_2385
    작성자 : 사원대우임원
    추천 : 3
    조회수 : 638
    IP : 112.216.***.178
    댓글 : 1개
    등록시간 : 2014/04/04 18:32:23
    http://todayhumor.com/?programmer_2385 모바일
    The C PROGRAMMING LANGUAGE 해설



    == CHAPTER 1: A Tutorial Introduction ==

    === 1.2 Variables and Arithmetic Expressions ===
    이 장에서는 화씨 온도와 섭씨 온도 비교 표를 출력하는 프로그램을 만들어 보면서,
    변수와 printf() 함수를 설명합니다.
    전 책에 안 나오는 "덜 중요한" 것만 얘기하겠습니다.

    * C99 스펙
    C에는 참/거짓을 나타내는 변수형이 없습니다.

    많은 언어들이 true, false 같은 boolean타입이 있는데 말이죠.
    C에서는 0이면 false, 그 외의 값은 모두 true로 해석됩니다.

    C99라고 하는 C언어 최신 스펙이 있습니다. 
    컴파일러 만드는 회사들이 지켜야 하는 C언어 스펙이고요, 1999년에 제정된 걸 C99라고 부르고 놀랍게도 이게 최신입니다.
    더 놀라운건 15년이나 지났어도 C99를 완전하게 지원하는 C 컴파일러가 별로 없습니다. 일부 스펙만 지원하는 컴파일러가 다수입니다.

    C99에서 boolean 타입을 지원하도록 정했는데요, _Bool 이 바로 boolan 타입 입니다.
    stdbool.h 헤더파일을 인클루드 하면 boolean 타입이 정의되어 있어서 쓸 수 있어서 좀 더 우아한 모양의 코드를 작성할 수 있습니다.

    #include
    .... 생략
    bool b = false;

    아쉽게도 VS2010의 C 컴파일러는 이 코드를 컴파일하지 못 하는군요. 
    MS는 표준을 지키려 노력하기 보다는 표준에 없는 기능을 추가하는 안 좋은 습성이 있습니다.
    그래서 프로그래머들중에 MS를 싫어하는 사람이 많습니다. 제 글이 반대 먹는 이유도 아마 제가 VS에서 실습하라고 추천해서인거 같습니다.

    어쨌든 많은 C개발자들은 C99같은 최신 스펙을 잘 활용하지 않습니다.
    되도록이면 많은 컴파일러에서 무리없이 빌드될 수 있는 코드를 작성하는 것이 더 현명한 방법이니까요.

    컴파일러 회사들이 C99 지원을 게을리 하는 이유중에 C++ 컴파일러의 개선에 집중하기 때문이라는 나름 설득력 있는 설도 있습니다.
    C++ 컴파일러로 C를 컴파일 해도 잘 되니까 C++ 컴파일러 쓰라는 건가?

    C++로 개발중인 프로젝트팀에서 C++ 스타일로 코딩하지 않고 C 스타일로 코딩하는 개발자도 있는데요, 주위에서 "컴파일러만 C++를 쓴다"고 놀리기도 합니다.
    또는 "주석만 C++ 이다"라고 하는 경우도.

    C의 /* */ 주석은 참 불편합니다. C++의 // 주석이 훨씬 편합니다. C99는 // 주석도 포함하고 있습니다. 그러나 앞서 말했듯이 C99는 없는 셈 치세요.
    VS2010의 C 컴파일러에서 해보니 이번에는 //를 지원하는군요.

    * 정수 나누기 정수는 항상 정수
    5/9는 항상 0 입니다.

    아래 처럼 둘 중 하나만 실수 표현식으로 바꿔주면 0.555.. 가 됩니다.

    5.0/9 
    또는 
    5/9.0 

    * 문서화
    주석을 적어 놓는 작업을 "주석을 단다"라고 표현하는데요,

    어느 정도 규모가 되는 회사는 아마 다 주석을 어떻게 달라고 하는 표준 규칙이 있을겁니다.
    보통 소스코드의 맨 윗부분에 이 파일이 어떤 용도인지 적어주고, 함수의 앞에도 설명을 달아 놓는게 좋습니다. 
    남이 보기에도 좋고, 자기가 보기에도 좋습니다.
    자기가 짠 코드는 절대 안 까먹을거 같죠? 몇 달 지나서 보면 자기도 이해하기 어렵습니다.

    * 정수의 범위
    정수형으로 가장 많이 쓰는게 int인데요, 책에서는 2바이트(16비트)로 설명 되어 있습니다만, 지금은 4바이트가 일반적입니다. 
    범위를 대충 외워두면 편할 때가 있는데요, 4바이트 정수는 약 -21억 ~ 21억 정도입니다.
    이 정도면 꽤 큰 거 같은데요, 용량 표현 방식으로 하면 -2GB ~ 2GB 입니다. 2GB 넘는 큰 파일의 특정 위치를 표현하기에는 부족하단 뜻이죠.

    책에 나온 2바이트 정수의 범위가 -32768 ~ 32767 인데요, 절대값이 왜 1 차이나는지 궁금하지 않나요? 전 쓸데 없이 이런게 궁금했었는데요.
    2바이트, 즉 16비트로 구분할 수 있는 전체 가짓수가 65536개 입니다. 이걸 반으로 나누면 32768개 인데요, 양수에 0도 포함되니까 최대 범위가 32767이 됩니다.
    즉 음수는 -32768 ~ -1 이고 양수는 0 ~ 32767 입니다. 둘 다 32768개 입니다. 다른 크기의 정수도 마찬가지로 1씩 차이납니다.

    오늘은 여기까지 입니다.
    한 달안에 끝내려고 했는데 생각보다 진도가 느리네요.

    이 게시물을 추천한 분들의 목록입니다.
    [1] 2014/04/04 22:12:59  121.157.***.239  오이자왕  467074
    [2] 2014/04/06 09:31:37  165.132.***.179  싸모미  124712
    [3] 2014/04/07 04:42:49  61.79.***.185  kipid  535470
    푸르딩딩:추천수 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
    The C PROGRAMMING LANGUAGE 해설 사원대우임원 14/04/04 18:32 20 0
    4
    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]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈