난 그냥 그 ANSI (ISO) 우연히 내가 (예 :가 발생 필요한 이유)이 기능을 구현 GNU C 이토 무엇이 알고 싶은 기능의 중첩 .. 을 허용하지 않습니다.중첩 된 함수가
(a()가 다른 함수에서 with (b())와 정의 된 경우 a의 수명이 전체 프로그램이됩니까?
함수 a()에 대한 저장은 함수 b()에 할당 된 스택에서 생성됩니까?
Q
중첩 된 함수가
1
A
답변
1
저는 http://en.wikipedia.org/wiki/Nested_function이 귀하의 질문 # 1의 대부분을 답변한다고 생각합니다. 질문 # 2는 http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html으로, 질문 # 3은 http://gcc.gnu.org/onlinedocs/gccint/Trampolines.html에 자세히 나와 있습니다.
편집 : (제외) 위키 피 디아 문서는 알수없는 중첩 된 기능을 지원 ALGOL 기반 언어의 목록 떨어져 PL/M을 떠났다. 아, 좋은 옛날.
1
1) 매우 주관적입니다. 단서가 아닙니다. :-)
2) 아니오. 내부 기능의 수명은 외부 기능의 수명으로 제한됩니다. GCC documentation on nested functions을 참조하십시오. 내부 함수에 대한 포인터를 유지하고 외부 함수가 반환 된 후에 호출하면 나쁜 일이 발생할 수 있습니다.
3) 내부 함수는 다른 함수와 마찬가지로 자체 스택 공간을 할당합니다. 그것은 재귀 호출을 지원하기 위해 자체 공간을 할당해야합니다.
관련 문제
- 1. PHP 함수가 반환됩니다. 중첩 된 함수
- 2. json_encode 및 중첩 된 객체
- 3. 중첩 된 오버로드 된 연산자?
- 4. 사전 내의 중첩 사전 (중첩 된 사전)
- 5. 복잡한 중첩 된 엑셀 기능
- 6. 문제 지속 중첩 중첩 된 포함 된 문서
- 7. WPF : 중첩 된 DrawingGroup을 중첩 된 DrawingVisual로 변환
- 8. 중첩 된 서버 컨트롤로 중첩 된 HTML 허용
- 9. MVC에서 중첩 된 중첩 된 반복 동작 동작
- 10. 함수가 호출 된 Excel 셀
- 11. DLL에서 호출 된 WinAPI 함수가
- 12. 중첩 된 라우팅
- 13. 중첩 된 UpdatePanel 동작
- 14. Quartz의 중첩 된 작업
- 15. 중첩 된 제네릭
- 16. XML에 중첩 된 LiNQ
- 17. 레일 : 중첩 된 모델
- 18. 중첩 된 람다 식
- 19. 중첩 된 일회용품에 버리시겠습니까?
- 20. 중첩 된 svn 리포지토리
- 21. 중첩 된 해상도
- 22. 중첩 된 객체 직렬화
- 23. 중첩 된 iframe을
- 24. 중첩 된 장고 템플릿
- 25. 중첩 된 CSS 문제
- 26. 중첩 된 피벗 컨트롤
- 27. 중첩 된 클래스의 ActionListener
- 28. 중첩 된 UIScrollView가있는 TTScrollView
- 29. 중첩 된 쿼리
- 30. while 중첩 된 루프
고맙습니다. :) – Tarun