스택큐힙리스트

어떤 이진 형식 파일을 프로그램에 포함해야 할지 살펴보십시오. 본문

카테고리 없음

어떤 이진 형식 파일을 프로그램에 포함해야 할지 살펴보십시오.

스택큐힙리스트 2023. 11. 17. 10:39
반응형

C언어에서 staticextern의 차이점은 무엇인가요?

답변 1

URL: http://wiki.answers.com/Q/What_is_the_difference_between_static_and_extern


다음은 http://wiki.answers.com/Q/What_is_the_difference_between_static_and_extern에서 가져온 내용입니다:


정적 저장 클래스는 함수 또는 파일에 대해 로컬 변수로 선언된 식별자를 선언하는 데 사용되며, 선언된 위치에서 제어가 전달된 후에도 해당 값이 존재하고 유지됩니다. 이 저장 클래스는 영구적인 지속 기간을 가지고 있습니다. 이 클래스로 선언된 변수는 함수의 각 호출에서 해당 값을 유지합니다. 범위는 로컬입니다. 변수는 선언된 함수에서만 알려지거나 전역적으로 파일에 선언된 경우 해당 파일 내의 함수에 의해서만 알려지거나 볼 수 있습니다. 이 저장 클래스는 변수의 선언도 변수를 0 또는 모든 비트를 끄는 값으로 초기화합니다.


외부 저장 클래스는 파일 내의 함수에 알려지고 프로그램 내의 모든 함수에 알려질 수 있는 전역 변수를 선언하는 데 사용됩니다. 이 저장 클래스는 영구적인 지속 기간을 가지고 있습니다. 이 클래스의 어떤 변수도 다른 할당에 의해 변경될 때까지 해당 값을 유지합니다. 범위는 전역입니다. 변수는 프로그램 내의 모든 함수에서 알려지거나 볼 수 있습니다.


답변 2

정적(static)과 외부(extern)는 C 프로그래밍 언어에서 변수와 함수를 정의할 때 사용하는 키워드입니다. 이 두 키워드는 변수와 함수의 범위와 접근성을 제어하여 프로그램을 조직화하는 데 도움을 준다는 공통점이 있습니다. 그러나 사용 방법과 결과적인 동작에는 중요한 차이가 있습니다.
정적(static)은 선언된 변수 또는 함수의 범위를 현재 파일에 제한하는 데 사용됩니다. 따라서 정적 변수 및 함수는 해당 파일 내에서만 접근할 수 있으며 다른 파일에서는 사용할 수 없습니다. 이는 변수와 함수의 이름이 같은 다른 파일과 충돌하는 것을 방지하여 코드의 가독성과 유지 관리에 도움이 됩니다. 또한 정적 변수는 프로그램이 시작될 때 초기화되며 프로그램이 종료될 때까지 유지됩니다. 반면, 정적 함수는 다른 함수 내에서 호출할 수 없으며, 해당 파일에서만 호출할 수 있습니다.
외부(extern)는 현재 파일에서 선언되지 않은 변수 또는 함수를 참조하고자 할 때 사용됩니다. 이것은 외부 파일에 선언된 변수 또는 함수를 현재 파일에서 사용할 수 있도록 만듭니다. extern으로 선언된 변수는 정의된 파일 내에서 사용할 수 없지만 다른 파일에서 정의된 변수에 접근할 수 있습니다. 이와 같은 방식으로, extern으로 선언된 함수는 해당 파일 내에서 정의되지 않았음에도 다른 파일에서 호출할 수 있습니다. 외부 변수 및 함수는 링커(linker)를 통해 링크되어야 하므로 프로그램에 필요한 정의가 있는지 확인해야 합니다.
결론적으로, 정적과 외부는 프로그램의 모듈성과 가독성을 개선하기 위해 사용되는 C 프로그래밍의 중요한 키워드입니다. 정적은 현재 파일에서만 접근할 수 있고 충돌을 방지하며, 외부는 다른 파일에서 선언된 변수와 함수를 현재 파일에서 참조할 수 있습니다. 이러한 기능을 통해 프로그램을 구조화하고 모듈화하여 효율적이고 유지 관리가 쉬운 코드를 작성할 수 있습니다.

반응형
Comments