2012-09-28 4 views
4

VxWorks에서 임베디드 응용 프로그램을 개발 중입니다.C에서 정적 함수와 비 정적 함수의 차이점

정적 함수는 정의 된 파일에서만 호출되며 비 정적 함수는 소스 프로젝트의 모든 파일에서 호출됩니다.

정적 및 비 정적 함수를 실행 시간을 concening과 관련된 메모리 사이에 차이점이 있는지 궁금 해요는

답변

11

전혀 성능 차이가 없습니다. static 키워드가 함수에서 수행하는 유일한 작업은 내부에 linkage이 지정되어 있으므로 정의 된 파일에서만 액세스 할 수 있습니다.

2

실행 시간이나 런타임 메모리 요구 사항에는 차이가 없습니다.

일부 (많은?) 링커는 사용하지 않는 정적 함수를 찾아 냄으로써 더 쉽게 찾을 수 있습니다. 은 작은 코드 크기를 권장합니다.

2

귀하의 컴파일러에 따라 다릅니다. 정적 함수는 컴파일러가 호출되는 모든 위치를 알 수 있기 때문에 이론적으로 더 잘 최적화 될 수 있습니다. 컴파일러에서 어셈블리 목록을 가져 와서 더 효율적인지 스스로 찾아 낼 수 있어야합니다.

+0

달리기 공연에 차이가 있습니까? 편집과 연계에 관한 것이 아닌가? – MOHAMED

+0

왜 이것을 다운 그레이드 했습니까? –

관련 문제