본문 바로가기
C언어/C언어 간단 개념 정리

4강,5강,6강. 프로그램의 5대 구성 요소

by Dev dreamer 2023. 1. 10.

출처: 정혜경 판타스틱 자료구조 입문 (in C)

[무료] 정혜경 판타스틱 자료구조 입문 (in C) - 인프런 | 강의 (inflearn.com)

 

 

 

 

 

1.변수

 

변수를 선언하면 컴퓨터 내부에 기억공간이 있다.(Ram Random access memory)

CPU 중앙처리 장치(인간의 뇌)

 

CPU 안에

 

ALU (연산장치)가 있다.

CU (제어장치)가 있다.

 

Register(기억공간)가 있다. => Cpu가 명령어 처리시 처리 대상을 올려놓고 작업하는 기억공간)

Register마다 각각의 이름과 기능이 있다. 이걸 다 외워서 코딩하는 언어가 Assembly 라는 언어이다.

 

C언어는 Register의 이름을 몰라도 코딩이 가능하다.

 

보수기(Cpu에 반 걸쳐있는) => 컴퓨터 자체는 기억공간에 저장할 때 2진수로밖에 저장을 못한다. 이러한 2진수를 원하는 데이터 값으로 변경시켜줄때 사용하는 것이 보수기이다.

RAM(주기억 장치)  데이터 크기 작음, 고속의 메모리, Byte 단위로 주소가 부여, 휘발성 메모리

 

*휘발성 메모리: 컴퓨터를 껐다 키면 사라지는 메모리.

 

DD(Driver Device) 사이에 연결장치

 

HD (보조기억 장치) 데이터 크기 큼 , 저속의 메모리, 비 휘발성 메모리

 

주기억 장치가 클 수록 컴퓨터 가격도 비싸고 성능도 좋다.

 

 

HD 에 테트리스를 깔아주면 TETRIS.EXE

이를 실행할때 CPU가 실행해줘야하는데 이러한 CPU가 하드디스크를 직접 CPU가 명령어를 읽어 처리하는건 불가능하다.

 

CPU는 사용자가 Tetris.exe 를 실행해달라고 요구하면 Tetris를 하드디스크에 올려놓고 실행하는 것이 아닌

Ram에 올려놓고 실행시킨다. (Load 시킨다)

 

프로그램은 Ram에 올려놓고 한다 => Ram 은 CPU의 작업대이다.

CPU에서 명령어가 Register에 들어가서 Ram에서 실행시킨 Tetris.exe 에 명령어를 전달한다.

 

Ram은 byte(영문자 1글자)단위로 주소가 부여되어 있다.

변수를 선언하면 Ram안에 잡힌다. 크키가 4byte 이고 시작 위치가 1200에 잡히면 1200~1203에 변수가 저장됨.

 

 

 

2. 상수

3 숫자 상수, 2.5 실수상수, a 문자 상수, sky 문자열 상수

 

변수가 중요할까 상수가 중요할까?

 

데이터의 타입에 따라서 변수의 설정이 요구되므로 상수가 좀더 중요하다고 한다.

 

 

3.연산자

프로그램내에서 연산을 할 때 사용하는 기호.  총 45개의 연산자가 있다.

 

4.예약어(reserved word)

프로그래밍 언어중에ㅔ서 특별한 의미로 고정되어 사용되는 단어로 사용자가 임의로 바꾸어 사용할 수 없는 명령어

 

 

5.함수(funtion)

변수, 상수, 예약어, 연산자 등을 이용하여 만든 한가지 이상의 긴으을 가진 짧은 프로그램.

 

함수는 한번에 하나만 하는 기능을 하는것을 권장한다.( 두가지 기능을 포함한 함수의 경우 원하는 기능만 사용하는것이 불가능함.)

 

 

int 는 예약어 number 는 변수

= 는 연산자 3 는 상수

printf 는 함수

문자열 상수.

 

함수의 2분류

-Library Function: Maker에서 제공하는 함수(460여개)

 

-User Defined Function : 사용자 정의 함수 (무한대)

 

 

soen.kr

C/C++ 에 들어가서

위에 REFERENCE 를 들어가면 다양한 함수가 존재한다.

여기서 컨트롤 F 를 눌러서 원하는 찾고자 하는 함수를 찾을 수 있다.

 

들어가 보면 헤더파일을 INCLUDE 시켜야 사용이 가능하다.

 

 

 

함수의 특징

-함수의 외형적인 측면의 특징: 함수명 뒤에 항상 ()가 따라다닌다.

 

printf 함수 숫자 뒤에 줄을 바꿔라. 소괄호 안에 있는 것을 (전달)인자 argument 라고 한다.

인자 -> 함수가 수행될때 쓰일 데이터

 

-수행 측면의 함수의 특징

 

1.Call (호출) 해줘여만 실행 된다.

 

2.return(회귀) 한다.

 

기능을 해라 하는것을 call 다시 함수로 돌아오는것을 return

 

-함수 사용을 위해 필요한 3요소.

1. 함수 선언부

2. 함수 호출부

3. 함수 정의부

 

반드시 세가지가 갖추어 주지 않는 경우 컴파일 언어인 C나 C++에서는 함수가 작동이 불가능하다.

 

 

-Cprogram 은 프로글먀의 기능을 함수 단위로 나누어 작성한다 Stroctured programming 언어 S/P 언어.

: 입력기능 ,계산기능, 출력기능 등

-Cprogram은 소문자로 작성한다.( 대소문자 구분) =>C Compiler 가 구분을 함.

: 반드시 소문자로 작성해야 하는것 : 예약어, main 함수명, 라이브러리 함수.

 

예약어 int if for 은 반드시 소문자.

함수명중에서 main 이라는 함수명은 반드시 소문자!

라이브러리 함수는 대부분 소문자임 -> 함수는 반드시 소문자!

 

 

만약 int 같은 경우에 num을 선언 했다고 가정했을때

대문자 NUM 에 7을 넣으면 어떤 오류가 발생할까/

 

일단 자체적으로 num 은 왜 선언하고 안쓰니 warning 이 생길것이고

NUM 같은 경우도 너가 뭔데? 선언된적이 없는데? 하며 Compiled Error 가 뜰것이다.

 

 

include 포함하다 내포하다  stdio.h 를 포함하다/ 내포하다

stdio.h =>standard input output.header file =>printf를 사용하기 위해 필요한 파일 ->쓰려면 인클루드 해야함.

1. 함수 선언부(컴파일러에게 함수의 기본 정보를 줌)

컴파일러야 난 void 타입의 func1,2,3,4, 를 쓰고싶어라고 compiler에 알려줘야

호출부에서 에러가 안난다.

 

2. 함수 호출부(함수를 사용하기 위해부르는것)

C언어는 structured programming 언어로써 함수단위로 프로그램을 작성하게 되어있다.

함수보다 가장 중요한건 main 이라는 함수다.( main 모든 함수의 중심)

C프로그램은 main 함수로 부터 시작되고 main 함수를 모두 실행한 다음에 main 함수가 끝나면 종료된다.

main 함수가 중앙에 있건 끝에 잇건 실행의 시작은 main 함수로부터 시작된다.

 

300

main 함수에서 func2 실행

이후 return(자기를 호출한 곳으로)

다시 main 함수에서 func1 실행

func 1 에 내부에 func 3 을 실행 -> return func 1로 -> return -> main으로

 

func4는 실행 안됨. 꼭 정의해 놓았다고 반드시 실행하진 않아도 된다.

함수는 만들어 놓고 호출안해도 상관없음(오류안뜸)

 

함수를 미리 만들어 놓고 사용자가 호출하고 안하고를 결정하는 것이다.

 

3. 함수 정의부

 

 

 

 

 

 

 

댓글