프로그래밍
[C 언어 기초] 19. 새로운 예제 프로그램
[C 언어 기초] 19. 새로운 예제 프로그램
2017.01.11새로운 예제 프로그램우리는 컴퓨터에 숫자, 문자 혹은 단어나 문장을 넣어주고, 컴퓨터가 그 데이터를 이용해서 어떤 일을 해주기를 기대합니다. 이처럼 컴퓨터는 작업할 때 데이터를 가지고 작업합니다. 예를 들면, 지불할 이자를 계산한다거나, 리스트를 정렬해서 보여주는 등의 일을 할 수 있습니다. 이번 장에서는 읽어온 데이터를 조작하는 방법에 대해서 배울 것입니다.이장의 목표는 C에서 사용되는 기본 데이터형 정수형과 부동소수점형의 차이에 대해서 알아본 뒤, 그 데이터들이 무엇을 의미하는지, 어떻게 선언하는지 그리고 언제 어떻게 사용하는지를 배우는 것입니다. 또한, 상수와 변수에 차이에 대해서도 설명할 것입니다. 이제 다시, 새로운 예제 프로그램을 만나볼 것입니다. 지금까지와 마찬가지로, 몇 가지 낯선 것들이 ..
[C 언어 기초] 17. 키워드와 예약된 식별자
[C 언어 기초] 17. 키워드와 예약된 식별자
2017.01.10키워드와 예약된 식별자키워드는 C가 특별한 용도로 사용하는 어휘라서 식별자나 변수의 이름으로 사용할 수 없습니다.다음 리스트에서 굵게 표시한 것은 C90 표준에서 추가된 키워드이고, 기울여 표시한 것은 C99 표준에서 추가된 키워드입니다. 또, 굵고 기울여 표시된 것은 C11 표준에서 추가되었습니다.C의 키워드들 auto extern short while break float signed _Alignas case for sizeof _Alignof char goto static _Bool const if struct _Complex continue inline switch _Generic default int typedef _Imaginary do long union _Noreturn double reg..
[C 언어 기초] 16. 디버깅
[C 언어 기초] 16. 디버깅
2017.01.10디버깅프로그램을 작성하는 도중 오타를 입력하는 등의 실수를 해서 에러를 발생시킬 수 있습니다. 프로그램에서의 에러를 흔히 버그라 하고, 에러를 찾아 고치는 것을 디버깅이라 합니다.예제 2.4는 에러가 몇 개 있는 프로그램입니다. 몇 개의 에러가 있을까요?예제 2.4 - error.c 프로그램/* error.c -- 에러가 몇 개 있는 프로그램 #include int main(void) ( int n1, int n2, int n3; n1 = 10; n2 = n1 * n1; n3 = n2 * n2; printf("n1 : %d, n1의 제곱 : %d, n1의 세제곱 : %d", n1, n2, n3) return 0; )신택스 에러(Syntax Error)예제 2.4는 신택스 에러를 가지고 있습니다. 신택스 ..
[C 언어 기초] 15. 사용자가 정의한 함수
[C 언어 기초] 15. 사용자가 정의한 함수
2017.01.07사용자가 정의한 함수지금까지의 예제들은 표준 함수 printf()만을 사용했지만, 예제 2.3은 직접 만든 함수를 사용할 것입니다.예제 2.3 - third.c 프로그램 // third.c -- 하나의 파일에서 두 개의 함수를 사용 #include void call(void); int main(void) { printf("call() 함수를 호출합니다. \n"); call(); printf("프로그램을 종료합니다. \n"); return 0; } void call(void) { printf("call() 함수를 성공적으로 호출했습니다! \n"); }프로그램의 출력은 다음과 같습니다.call() 함수를 호출합니다. call() 함수를 성공적으로 호출했습니다! 프로그램을 종료합니다.call() 함수는 이 프..
[C 언어 기초] 14. C 언어 더 알아보기
[C 언어 기초] 14. C 언어 더 알아보기
2017.01.03C 언어 더 알아보기첫 번째 예제는 아주 쉬웠습니다. 이번에 설명할 예제 2.2도 그다지 어렵지 않습니다.예제 2.2 - second.c 프로그램#include int main(void) { int num1, num2; num1 = 10; num2 = num1 * 10; printf("num1 = %d, num2 = %d \n", num1, num2); printf("num2 = %d \n", num1 * 10); return 0; }CodeHighlighter이 코드는 주석을 사용하고 있습니다. 또, 변수를 선언한 뒤 곱셈을 하고 그 값을 출력합니다. 이제부터 이것들에 대해 자세히 알아봅시다. 문서화 먼저, 이 프로그램은 프로그램의 목적을 주석으로 설명합니다. 이렇게 주석을 적어주는 것은 시간이 거의 ..
[C 언어 기초] 13. 읽기 쉬운 프로그램을 작성하는 방법
[C 언어 기초] 13. 읽기 쉬운 프로그램을 작성하는 방법
2016.12.31읽기 쉬운 프로그램을 작성하는 방법프로그램은 읽기 쉽게 만드는 것이 좋습니다. 프로그램을 읽기 쉽게 만들면 이해하기가 쉽고, 수정하거나 변경하는 것도 수월해집니다. 또한, 그 프로그램이 무슨 일을 하는지 자신의 개념을 명료화하는 데 도움을 줍니다.가독성을 높이는 방법에는 두 가지가 있는데, 의미를 한눈에 알아볼 수 있는 식별자를 사용하는 것과 주석을 붙이는 것입니다. 이 두 가지 행동은 상호보완적이라 변수의 이름을 width라 한다면, 그 변수가 폭(width)을 의미한다고 주석을 붙일 필요는 없을 것입니다. 그러나 변수 이름을 animal_3과 같이 정했다면, 그 변수가 어떤 행동을 하는지 설명할 필요가 있을 것입니다.또 다른 방법은 서로 다른 기능을 수행하는 섹션들을 빈 라인을 사용해서 구분하는 것입..
[C 언어 기초] 12. 프로그램의 기본적인 구조
[C 언어 기초] 12. 프로그램의 기본적인 구조
2016.12.30프로그램의 기본적인 구조프로그램의 예제를 살펴보면서 C 프로그램의 몇 가지 규칙에 대해 알아보았습니다.프로그램은 하나 또는 그 이상의 함수들로 구성되며, 그중 하나는 반드시 main()으로 이름을 정해야 합니다.함수는 헤더와 몸체로 구성되며, 함수 헤더는 그 함수가 리턴하는 데이터의 타입과 전달되는 데이터의 타입, 그리고 함수의 이름으로 구성됩니다. 괄호를 보고 함수라는 것을 알 수 있으며, 괄호 안은 비어있을 수도 있습니다. 중괄호({})로 둘러싸인 몸체는 C 언어의 문장들로 구성되며, 각각의 문장은 세미콜론(;)으로 끝납니다.예제 2.1에서는 사용할 변수를 선언하는 선언문과 변수에 값을 대입하는 대입문이 있습니다. 그다음에 각각 printf() 함수를 호출하는 3개의 출력문이 있습니다. 마지막으로 m..
[C 언어 기초] 11. 예제 2.1 다시 살펴보기
[C 언어 기초] 11. 예제 2.1 다시 살펴보기
2016.12.29예제 2.1 다시 살펴보기앞에서 예제 2.1을 대략 살펴봤으니, 이번에는 프로그램의 각 라인을 보면서 더 자세히 들여다보는 것을 목표로 할 것입니다. #include 지시자와 헤더 파일 #include 이것이 프로그램의 첫 번째 라인입니다. #include 는 #include 라인이 적힌 그 위치에 stdio.h 파일의 전체 내용을 불러옵니다. 공통으로 사용하는 파일이 있을 때 include로 그 파일을 불러온다면 상당히 편리하게 작성할 수 있습니다.#include 문은 C의 전처리기 지시자입니다. 일반적으로 C 컴파일러는 컴파일하기 전에 몇 가지 작업을 미리 실행하는데 이 작업을 전처리(preprocessor)라 합니다.stdio.h 파일에는 입력 함수와 출력 함수에 대한 정보가 들어있으며, 이것을 호..
[C 언어 기초] 10. 간단한 C 언어 예제
[C 언어 기초] 10. 간단한 C 언어 예제
2016.12.28간단한 C 언어 예제C 언어로 만들어진 프로그램은 다소 특이한 모습을 하고 있고, 이상한 기호들이 여기저기서 사용됩니다. 하지만, 이 강좌를 읽어 나가다 보면 이런 C의 특이한 모습과 기호들도 점차 낯설지 않고 친숙해질 것입니다. 또는 C에서 파생된 많은 언어에 이미 익숙하다면 C 소스가 편하게 느껴질 것입니다.간단한 C 예제 프로그램을 하나 살펴봅시다. 예제 2.1에 있는 이 프로그램을 통해서 C 프로그래밍의 기본적인 특징들을 설명하겠습니다.예제 2.1 - first.c 프로그램#include int main(void) { /* 이 프로그램은 간단한 출력문입니다. */ int num; num = 1; printf("안녕 "); printf("세상! \n"); printf("num에는 %d이 저장되어 있..
[C 언어 기초] 9. GNU 컴파일러 컬렉션과 LLVM 프로젝트
[C 언어 기초] 9. GNU 컴파일러 컬렉션과 LLVM 프로젝트
2016.12.27GNU 컴파일러 컬렉션과 LLVM 프로젝트1987년에 시작된 GNU(GNU is Not Unix)는 Unix 형식의 무료 소프트웨어를 수없이 많이 개발해 온 대규모 협회 프로젝트입니다. GNU의 산출물 중 하나가 GNU 컴파일러 컬렉션(GNU Compiler Collection) 즉, GCC입니다. 여기에는 C 컴파일러도 포함되어 있으며, 변화하는 C 표준을 따라잡기 위해 계속해서 노력하고 있습니다. GCC는 각종 하드웨어 플랫폼과 Unix, Linux, Windows 등 다양한 운영체제에서 사용할 수 있으며, gcc 명령으로 실행합니다. 또한, gcc를 사용하는 많은 시스템이 cc 명령을 gcc의 별칭(alias) 명령으로 사용합니다.LLVM 프로젝트는 일리노이 대학에서 2000년 연구 프로젝트로 시작..
[C 언어 기초] 8. 프로그램 제작 과정
[C 언어 기초] 8. 프로그램 제작 과정
2016.12.26프로그램 제작 과정사용하는 컴퓨터의 환경에 따라 프로그램을 만드는 과정이 달라집니다. C는 이식성이 있어서 Unix, Linux, MS-DOS, Windows, Macintosh OS 등의 환경에서 사용될 수 있습니다.먼저, 공통적인 C 언어의 몇 가지 요소를 살펴봅시다. C 프로그램이 실행되기까지의 과정을 꼭 알아둬야 하는 것은 아니지만, 이것은 기초지식이며, 또한 C 프로그램을 만들기 위해 왜 이런 절차를 거치는지 그 이유를 이해하는 것에 도움이 됩니다.C 언어 파일은 텍스트 파일로 저장해야 하며, 이 파일은 .c로 끝나야 합니다(예를 들면 first.c, second.c) 마침표(.) 앞부분을 기본명이라 하고, 마침표 뒷부분을 확장자라 합니다. 그러므로 위에서 first는 기본명이고 c는 확장자이며..
[C 언어 기초] 7. C를 활용하는 일곱 단계
[C 언어 기초] 7. C를 활용하는 일곱 단계
2016.12.25C를 활용하는 일곱 단계지금까지 설명했듯이, C 언어는 컴파일하는 언어입니다. 만약 다른 컴파일 언어를 사용해본 경험이 있다면, C 프로그램을 활용하는 방법에 금방 적응할 수 있습니다. 하지만 인터프리터 언어만 알고 있거나, VB와 같은 그래픽 지향의 언어만 알고 있다면, 혹은 프로그래밍에 대한 지식이 전혀 없다면, 컴파일하는 방법을 배워야 합니다. 먼저 프로그래밍의 전체적인 윤곽을 설명하기 위해 C 프로그램을 작성하는 일곱 단계로 나누어서 설명하려 합니다.1단계 : 프로그램의 목적 정의 먼저, 어떤 프로그램을 만들 것인지 결정해야 합니다. 프로그램이 요구하는 정보, 수행할 계산 및 조작, 사용자에게 제공할 정보 등에 대해 생각해야 합니다. 이 계획 단계에서는 C 언어와 같은 컴퓨터 언어가 아닌 우리가 ..