C
-
[C Language] 이클립스 C/C++ 개발 환경 구축 !!CSE/C Language 2015. 9. 16. 16:29
윈도우에서 이클립스 IDE를 통해서 C / C++ 개발 환경을 구축해 보도록 하겠습니다! 이클립스를 통해 개발을 하는 이유는... 솔직히 Visual Studio 설치하기엔 너무 무겁고, 오래걸리고, 걍 깔끔해보이지만, 그래도 이클립스가 더 손에 익어서..? 아무튼. 1. 이클립스를 다운 받아서 압축해제 합니다. http://www.eclipse.org/ 에 접속하셔서 다운로드를 누르신 후, 아래와 같은 'Eclipse IDE for C/C++ Developers' 버전으로 다운받아주세요 !! * Ubuntu 이든 64 or 32 bit 이든 맞게 받으시길 바랍니다 ! 압축해제하시면 아래와 같이 구성되어 있을 겁니다 ! 2. 아래 사이트 진입 후, Installer를 다운받습니다 !! http://www..
-
[C Language] 33. 정적변수 - C 언어CSE/C Language 2015. 7. 19. 15:08
1. 정적변수의 특징 1) 정적변수가 함수의 내부에서 선언되면 내부 정적변수이고 외부에서 선언되면 외부 정적변수이다. 2) 정적변수는 프로그램이 종료될 때까지 생존한다. 즉, 메모리에서 사라지지 않는다. 3) 정적변수는 초기화를 하면 프로그램이 실행될 때 초기화 값으로 딱 한번 초기화된다. 4) 정적변수는 초기화하지 않으면 무조건 0이나 널로 초기화된다. 5) 정적변수는 지역변수와 달리 정적 데이터 영역에 저장된다.(스택에 저장되지 않는다) 6) 내부 정적변수는 변수가 선언된 함수 안에서만 유효하다(다른 함수나 파일에서는 내부 정적변수의 존재를 알지 못하므로 사용될 수 없다.) 7) 외부 정적변수는 변수가 선언된 그 아래에 있는 모든 함수에서 사용될 수 있다(다른 파일에서는 외부 정적변수의 존재를 알지 ..
-
[C Language] 32. 전역변수 - C 언어CSE/C Language 2015. 7. 19. 14:33
1. 전역변수의 특징 1) 함수의 바깥에서 처음 변수를 정의할 때는 기억부류 지정자가 필요하지 않지만 다른 파일의 함수에서 사용할 때는 extern이라는 기억부류 지정자가 필요하다. 즉, 변수에 extern을 앞에 붙이게 되면 다른 파일의 extern으로 선언된 변수를 사용하겠다고 컴파일러에게 알리는 것이다. 2) 전역변수는 사용자가 초기화를 해주지 않으면 무조건 0이나 널로 초기화된다. 3) 전역변수는 프로그램이 시작될 때 딱 한번만 초기화되고 더 이상 초기화되지 않는다. 4) 전역변수는 함수의 외부에서 정의하며 모든 함수, 파일에서 인식하고 처리된다. 5) 전역변수는 프로그램이 끝날때까지 메모리에서 사라지지 않는다. 프로그램이 실행되는 동안에는 항상 메모리에 상주된다. 6) 전역변수는 정적 데이터 영..
-
[C Language] 31. 지역변수 - C 언어CSE/C Language 2015. 7. 19. 13:20
1. 지역변수의 특징 1) auto 라는 기억부류 지정자를 사용한다. 명시하지 않으면 자동으로 시스템이 auto 라고 인식하여 처리하기 때문에 일반적으로 명시하지 않는다. 2) 지역변수는 절대 초기화되지 않는다. 그러므로 초기화는 프로그래머의 몫이다. 3) 함수 안에서의 지역변수를 프로그래머가 초기화를 했다면 함수를 호출할 때마다 지역변수는 초기화된다. 4) 지역변수는 함수의 내부에서 사용하며 함수 안에서만 존재의 의미가 있다. 다른 함수에서는 지역변수를 인식하지 못하기 때문에 다른 함수에서 사용하면 문법 에러를 유발한다. 5) 지역변수를 정의한 함수가 끝나면 지역변수는 자동적으로 메모리에서 사라진다. 6) 지역변수는 스택(stack)이라는 메모리 위치에 저장된다. 2. 지역변수의 사용 예 1234567..
-
[C Language] 31. 기억부류(Storage Class) 개요 - C 언어CSE/C Language 2015. 7. 18. 16:12
1. 기억부류란? 기억부류(Storage)란 변수를 지정할 때 그 변수가 메모리에 저장되는 위치나 변수가 프로그램에 미치는 범위를 말한다. 처음 프로그램을 작성할 때는 기억부류에 대한 개념 없이 프로그램을 작성해도 되지만 나중에는 반드시 기억부류를 염두에 두면서 프로그램을 작성해야 한다. 그렇지 않으면 프로그램이 커질수록 수정, 보완에 큰 문제가 발생한다. 예를 들어보자. 프로젝트를 진행할 때 하나의 파일, 하나의 함수로 진행하는 경우는 없다. 프로젝트는 보통 수십 개, 수백 개의 파일과 함수로 구성되며, 프로그래머가 각각의 함수나 파일을 담당한다. 어떤 프로그래머는 화면에 관련된 파일과 함수만을 담당하고, 출력에 관한 사항은 또다른 프로그래머가 담당하는 식이다. 프로젝트가 한창 진행 중일 때 알 수 없..
-
[C Language] 30. 2차원 배열 - C 언어CSE/C Language 2015. 7. 18. 14:50
1. 2차원 배열의 정의 2차원 배열은 다음과 같은 형식으로 정의한다. 배열요소형 배열명[첨자1][첨자2]; 2차원 배열은 1차원 배열의 집합체이기 때문에 '배열의 배열'이라고 불리며 행과 열로 구성된다. 2차원 배열이기 떄문에 당연히 첨자는 2개가 필요하며, 1차원과 같이 배열요소는 0부터 시작한다. 첨자 1은 행을 첨자 2는 열을 의미하는데 둘의 순서는 바뀔 수 없다. 2. 2차원 배열의 초기화 2차원 배열의 초기화는 행과 열의 개념만 확실하다면 이해하는 데 큰 무리가 없다. 아래와 같은 방법으로 배열을 초기화 할 수 있다. 1) int tmp[2][3] = {100}; 2) int tmp[2][3] = {100,}; 3) int tmp[2][3] = {100, 5, 7, 11, 12, 93}; 4)..
-
[C Language] 28. 배열 개요 - C 언어CSE/C Language 2015. 7. 16. 16:43
1. 배열의 필요성 배열이 얼마나 유용한 개념이고 프로그램상에서 얼마나 요긴하게 사용될 수 있는지 알아보자. 어느 학교의 선생님이 학급의 성적을 관리하고 싶을 때 다음과 같은 과정이 필요할 것이다. 학급 총원은 40명이다. - 학급의 학생 이름을 모두 나열한다. - 학생 이름 옆에 성적을 기입한다. - 학생별 총점, 평균을 구한다. - 국어, 영어, 수학의 학급 전체 총점과 평균을 구한다. - 학급 전체의 총점과 평균을 구한다. 이를 위해서는 모두 40명에 대한 변수가 필요하며, 아래와 같이 작성해서 총점과 평균을 구할 수 있다. 1234 int a, b, c, d, e, f, ... total = a + b + c + d + e + ... ave = total / 40;cs 일일이 모든 변수를 나열하기..
-
[C Language] 26. 함수 - 재귀함수(Recursive) - C 언어CSE/C Language 2015. 6. 13. 10:23
1. 재귀함수의 사용방법 아래 예제를 통해 재귀함수를 사용한 예제 1부터 100까지 더하는 예제를 보자. 123456789101112131415161718192021222324252627/* * recur1.c * * Created on: 2015. 5. 17. * Author: root */ #include int sum(int); int main(void) { int result = 0; result = sum(100); printf("Result = %d\n", result); return 0;} int sum(int x) { if (x == 0) return x; else return x + sum(x - 1);}Colored by Color Scriptercs 2. 재귀함수의 문제점 - 재귀함수..