C 프로그램 동작 방식
C 프로그램은 main() 이라는 함수가 운영체제(OS) 에서 호출되면서 시작되고, 그 main 함수가 호출되면 main 이름으로 정의된 block으로 진입하여, bloc 내의 명령문들을 순서대로 실행하게 된다.
User는 사용자다. Application을 c 프로그램이라고 생각해보자.
프로그램은 '함수의 집합체'이니 예를 들어서 프로그램도 함수라고 가정한다면, 그 함수를 호출하는 주체는 OS이며, 결국 거대한 함수이다. O/S가 프로그램을 실행한다는 것은 특정 실행 파일에 존재하는 'main' 함수를 호출하는 것이다. [그림 1]에서 볼 수 있는 call main() 위의 [그림1]의 Application 부분의 오른쪽 화살표를 보면, C 언어 코드가 적혀있다. 지금 봐야하는 line은 2번째 int main()이다.
1.[반환 데이터형] + main (int argc, char* argv[])
함수는 보통 값을 전달받아서 매개변수를 이용한 값을 함 수 내에서 처리한 후 반환 또는 void 형태로 하는 것이 기본적인 개념이다. 그렇다면, 이글을 보고 있는 사용자는 "main( )라는 것이 어떤 함수인거 아닐까?" 라는 고민을 해보았을 것이다.
먼저, 빨간 글씨부터 확인해보자.
argc는 ,프로그램을 실행할 때, 지정해 준 "명령행 옵션"의 "개 수"가 저장되는 곳이다.
argc의 full name은 argument counter이다.
argv는 , 프로그램을 실행할 때 지정해 준 "명령행 옵션의 문자열들"이 실제로 저장되는 배열이다.
- main() 함수에 전달되는 실질적인 정보로, 인덱스가 0인 문자열은 프로그램의 실행경로로 항상 고정되어 있다.
argv의 full name은 argument vector이다.
2. return
가장 중요한 일은 바로 함수를 사용할 때에 반환값을 얻을때, 사용이 된다. 또한 함수 내부의 변수들은 전역변수가 아난 지역변수를 사용하게 되는데, return을 사용해서 반환 시켜서 사용한다.
- 반환 & 종료를 의미
- return문을 만나면 현재 함수를 종료하고 호출한 곳으로 이동한다.
- 반환 값이 있을 경우 해당되는 반환 값과 함께 호출한 곳으로 이동한다.
- main() 함수에서 return문을 만나면 해당 프로그램을 종료하게 된다.
main() 함수 안에서의 return은 0 ,1, -1 return 값을 정수의 형태로 반환한다는 것이다. 하지만 값의 숫자에 따라 의미가 있다 그것을 한번 살펴보자.
1이상, -2 이하의 숫자로 표시하는 경우
- 구체적으로 어떤 내용을 외부에 알려줄 때 사용한다.
- 이들 숫자들은 미리 정의해 놓고 특정한 의미를 부여하여 처리하게 한다.
- 사용자 정의 함수에서는 그 함수가 하는 일에 따라서 리턴 값이 달라질 수 있지만, main() 함수에서는 되도록 위의 리턴 값 규칙에 따라 반환 값을 정해야 한다.
※ int main() -> return 0;
※ void main() -> return;
예제1)
// if 조건문
#include <stdio.h>
int main() {
int a=0;
printf("a가 정수로 return \n",a);
return 0;
}
예제 2)
int fuction1(){
for(a =0; a<10; a++){
sum += a;
}
return sum;
}
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C++] C++ 17 표준 라이브러리의 알고리즘 병렬화 (0) | 2024.07.03 |
---|---|
[C++] 문자열 뒤집는 방법 string (1) | 2024.07.02 |
[C++] 원이 겹치는지에 대한 개인 코드 (0) | 2024.05.29 |
[C++] 2차원 vector 크기 동적으로 재설정 (0) | 2024.05.08 |
[C++] vector (벡터) 복사하기 (0) | 2024.05.07 |