'C언어'에 해당되는 글 2건

  1. 2015.05.05 C언어에서의 지역변수
  2. 2015.04.26 Return 0에 관하여

C언어에서 지역변수는 메모리의 Stack에 저장된다 라는 말을 이해한 내용이다

왜 지역변수를 Stack의 개념으로 메모리에 할당할까 하고 생각하던중에 든 생각

C언어에서

...

main 함수가 있고 main 함수 위에 다른 함수가 존재해 선언 되어있다면 그럼 3개의 함수"main func1 func2 "가 존재한다하고
func1에서 func2 를 호출하여 사용하는 함수이고
3개의 함수 모두 지역변수 이름은 num이라고 할때

main 함수에서 우선 사용된 변수 num(num1로 얘기하자)이
stack에 저장되고
main함수에서 호출한 func1의 변수 num(num2라고 하자)가 stack에
저장되고
func1에서 호출한 func2의 변수 num(num3)가 stack에 저장되고

func2가 종료되서 num(num3)가 사라지고
func1가 종료되서 num(num2)가 사라지고
main 함수가 종료되면서 num(num1)이 사라진다 
                num3
        num2 num2                  num2
num1 num1 num1 로 저장되고 num1 num1 사라진다.

로 이해하였다.

추가로 Stack은 LIFO 방식이며

Stack에 저장되는 다른 정보로는
=지역변수가 반환후 돌아가는 주소
=Stack Frame (경계선정도로 이해하자) 가 있다.

 

 

 

'C언어' 카테고리의 다른 글

Return 0에 관하여  (0) 2015.04.26
Posted by 팡다츄
,

Return 0에 관하여

C언어 2015. 4. 26. 18:51

return 은 함수가 아니라 , C언어의 키워드 즉, "예약어"이다.

C언어는 뒤에 소괄호 () 가 없으면 함수가 아니다.

 

return은 현재 있는 함수에서 빠져나가며, 함수를 호출한 곳으로 되돌아간다 라는 뜻이다.

되돌아 가면서 함수를 호출한곳에 어떤값을 반환하는 것이다.

 

return 0; 의 뜻은 "0이라는 값을 반환한다 " 라는 의미이며,

return 1; 의 뜻은 "1이라는 값을 반환한다." 라는 의미이다.

return 은 함수 어느 곳에서도 위치하는것이 가능한데

return 이 실행되는 즉시 그 함수는 무.조.건 실행이 종료된다.

return 은 두가지 의미를 지닌다.

1. 함수의 종료

2. 값의 반환

때문에 반환하는 값이 없는 void main () 함수에서도 return 을 종료의 목적으로 사용하는 것이 가능하다.

return 0이란 무엇일까?

"return 0"이 가지는 의미는 "에러없이 정상적으로 프로그램이 종료되었다"는 뜻이다.

에러가 존재했다면 1 2 -1 등을 반환한다.

쉘에 반환되는값은 0 이 TRUE 입니다.

0 외의 값은 에러 코드입니다

보통 1을 True, 0을 False 로 생각하는데

일반적으로 함수가 의미하는 바에 따라서 리턴값이 달라진다

1. boolean계열의 의미를 지니는 경우는 1이 TRUE이고 0이 FALSE인 경우가 많다

2. 여러가지 integer값을 반환하는 경우는 0이 TRUE, 음수가 FALSE, 양수가 특정 상태를

반환하는경우가 종종 있다.

한줄로 요약하자면 return 0은 정상 종료했다는 뜻으로 사용된다.

 

 

 

 

 

출처 : http://mwultong.blogspot.com/2006/07/c-return-return-0.html

'C언어' 카테고리의 다른 글

C언어에서의 지역변수  (0) 2015.05.05
Posted by 팡다츄
,