언어따라 다른가 모르겠지만 보통 참,거짓을 구분할땐, return 0 는 return false와 같음. return 숫자,문자 는 return true 와 같고. 그래서 if(함수()) 이런구조일때 함부로 0을 리턴하면 false로 처리됨. 그래서 -1이나 1을 리턴하는거. 근데 이게 언어따라 다른가는 잘 모르겠다.
ㅇㅇㅇ(121.174)2015-05-08 16:13
그리고 return을 단순하게 종료개념으로 보면 안됨. 문자 그대로 값을 '되돌려주는' 명령이야. 부수적으로 '종료역할'이 있는거지, 종료가 주가 아님.
ㅇㅇㅇ(121.174)2015-05-08 16:15
ㄴ 긍께 종료하면 해당 값에 따라 운영체제가 처리할꺼 아님? 그게 0일때 -1일때 내부적으로 처리가 다름?
ㅇ(125.177)2015-05-08 16:22
1. a.exe 라는 프로그램이 시작되면, OS는 해당 프로그램을 위해서 가상 주소 공간과 프로세스 커널 오브젝트를 생성한다.
ssonacy(ssonacy)2015-05-08 16:29
2. a.exe 의 코드 영역을 실행하기위해서 OS 가 첫번째 스레드 하나를 만들며, 해당 스레드가 수행할 코드 위치를 a.exe 에서 구하여 시작시킨다
ssonacy(ssonacy)2015-05-08 16:30
3. 이때 첫번째 만들어 지는 스레드도 자기만의 CPU context 와 스레드 커널 오브젝트를 생성시켜준다
ssonacy(ssonacy)2015-05-08 16:30
4. 응용 프로그램의 구조에 따라서 총 4가지의 StartUp 함수가 존재한다. [유니코드 또는 아스키 코드 함수] ( 2 ) X [원폼 또는 콘솔 ] ( 2 ) = 총 4가지
ssonacy(ssonacy)2015-05-08 16:31
4번에 4가지중 하나의 Startup 함수로 시작하다가 유저가 작성한 Entry 함수로 접근하는데 이때도 또한 4가지의 형태이다
ssonacy(ssonacy)2015-05-08 16:32
그후 첫번째 스레드가 자식 스레드를 만들지 않고 메인 함수에서 return 을 만나면 , 첫번째 스레드의 종료코드 부분에 return 의 값을 기입하며, 해당 스레드는 첫번째 이자, 마지막 스레드 였기때문에 프로세스 종료 코드에도 동일한 값을 기입한다.
ssonacy(ssonacy)2015-05-08 16:33
끄읏~
ssonacy(ssonacy)2015-05-08 16:33
근깐, main 함수에서 return 만나면, 그냥 종료된 값을 저장만 할뿐이지, 다른 작업은안해,
ssonacy(ssonacy)2015-05-08 16:38
정상 , 비정상에 대한 판단은 프로그램을 만든 사람이 하는거구
ssonacy(ssonacy)2015-05-08 16:38
해당 부분에 대해서 자세히 알려면 "제프리 리처의 Windows via C/C++" 책을 보면되
ssonacy(ssonacy)2015-05-08 16:39
ㄴ 와 이형 젖문가네.. 당신의 지식에 감탄하고 갑니다.
d(125.177)2015-05-08 16:40
ㅇㅇㅇ / 뭔 소리냐? 0이 정상종료고 나머지가 비정상 종료인데. eax 레지스터 따봐라. 혹시 학부 1학년 생이냐?????
0은 0이고 -1은 -1이야
언어따라 다른가 모르겠지만 보통 참,거짓을 구분할땐, return 0 는 return false와 같음. return 숫자,문자 는 return true 와 같고. 그래서 if(함수()) 이런구조일때 함부로 0을 리턴하면 false로 처리됨. 그래서 -1이나 1을 리턴하는거. 근데 이게 언어따라 다른가는 잘 모르겠다.
그리고 return을 단순하게 종료개념으로 보면 안됨. 문자 그대로 값을 '되돌려주는' 명령이야. 부수적으로 '종료역할'이 있는거지, 종료가 주가 아님.
ㄴ 긍께 종료하면 해당 값에 따라 운영체제가 처리할꺼 아님? 그게 0일때 -1일때 내부적으로 처리가 다름?
1. a.exe 라는 프로그램이 시작되면, OS는 해당 프로그램을 위해서 가상 주소 공간과 프로세스 커널 오브젝트를 생성한다.
2. a.exe 의 코드 영역을 실행하기위해서 OS 가 첫번째 스레드 하나를 만들며, 해당 스레드가 수행할 코드 위치를 a.exe 에서 구하여 시작시킨다
3. 이때 첫번째 만들어 지는 스레드도 자기만의 CPU context 와 스레드 커널 오브젝트를 생성시켜준다
4. 응용 프로그램의 구조에 따라서 총 4가지의 StartUp 함수가 존재한다. [유니코드 또는 아스키 코드 함수] ( 2 ) X [원폼 또는 콘솔 ] ( 2 ) = 총 4가지
4번에 4가지중 하나의 Startup 함수로 시작하다가 유저가 작성한 Entry 함수로 접근하는데 이때도 또한 4가지의 형태이다
그후 첫번째 스레드가 자식 스레드를 만들지 않고 메인 함수에서 return 을 만나면 , 첫번째 스레드의 종료코드 부분에 return 의 값을 기입하며, 해당 스레드는 첫번째 이자, 마지막 스레드 였기때문에 프로세스 종료 코드에도 동일한 값을 기입한다.
끄읏~
근깐, main 함수에서 return 만나면, 그냥 종료된 값을 저장만 할뿐이지, 다른 작업은안해,
정상 , 비정상에 대한 판단은 프로그램을 만든 사람이 하는거구
해당 부분에 대해서 자세히 알려면 "제프리 리처의 Windows via C/C++" 책을 보면되
ㄴ 와 이형 젖문가네.. 당신의 지식에 감탄하고 갑니다.
ㅇㅇㅇ / 뭔 소리냐? 0이 정상종료고 나머지가 비정상 종료인데. eax 레지스터 따봐라. 혹시 학부 1학년 생이냐?????
아니면 요즘 컴공 수준 대폭 하향 된건가 아니면 지잡대인가?
convention 찾아봐라. 0이 normal이다.