반응형
Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 데이터베이스
- Yes
- 컴퓨터공학
- 컴퓨터과학
- 보안
- 파이썬
- 데이터구조
- 웹개발
- 컴퓨터비전
- 프로그래밍언어
- 네트워크
- 데이터과학
- 인공지능
- 빅데이터
- 머신러닝
- 클라우드컴퓨팅
- 프로그래밍
- 버전관리
- 소프트웨어공학
- 소프트웨어
- 알고리즘
- 딥러닝
- 사이버보안
- I'm Sorry
- 자바스크립트
- 자료구조
- 네트워크보안
- 코딩
- 2
- 데이터분석
Archives
- Today
- Total
스택큐힙리스트
img src="https://www.gstatic.com/webp/gallery/1.jpg" alt="Image">정적, 외부 및 인라인 객체-C 본문
카테고리 없음
img src="https://www.gstatic.com/webp/gallery/1.jpg" alt="Image">정적, 외부 및 인라인 객체-C
스택큐힙리스트 2023. 11. 19. 21:58반응형
LLVM 컴파일러를 사용하여 Objective-C에서 static
, extern
및 inline
(및 그 조합)이 무엇을 의미하는지 물어보고 싶습니다.
또한, CG_EXTERN
및 CG_INLINE
매크로가 있는 것을 알게 되었습니다. 대신 이들을 사용해야 할까요?
(분명한 설명을 갖춘 소스를 찾지 못해서 여기에서 하나를 만들면 유용할 것 같아서 참고할만한 소스가 있다면 가리키기로 생각했습니다.)
답변 1
세부 정보: http://tigcc.ticalc.org/doc/keywords.html#static
인라인
요약: 함수의 본문을 호출자로 이동시키는 것을 제안합니다.
세부 정보: http://tigcc.ticalc.org/doc/gnuexts.html#SEC93
인라인과 정적은 C++에서는 상당히 복잡합니다. (C++의 대부분과 마찬가지로)
또한 CG_EXTERN 및 CG_INLINE 매크로를 발견했습니다. 대신에 그것들을 사용해야 할까요?
아니요.
대신에, 이러한 유형의 기능이 필요한 경우 자체를 지정해야합니다. CG_EXTERN
과 CG_INLINE
은 특정한 의미를 갖고 있으며 (변경될 수 있음) 정의된 컨텍스트에서 사용하기 위해 만들어졌습니다. 또한, C 및 C++에서 extern
으로 지정하는 경우 CoreGraphics/ApplicationServices/CoreFoundation 등 많은 프레임워크를 포함해야하는 번거로움을 피하고 싶지 않을 것입니다.
답변 2
Objective-C에서의 Static, extern 및 inlineObjective-C 언어는 iOS 및 macOS 애플리케이션 개발을 위해 주로 사용되는 프로그래밍 언어입니다. 이 언어는 C 언어와 객체 지향 프로그래밍 개념을 결합하여 만들어진 언어로, 다른 언어와 비교하여 다양한 특징과 기능을 가지고 있습니다. 이 중에서도 Static, extern 및 inline은 Objective-C에서 자주 사용되는 세 가지 키워드입니다. 이번 글에서는 Static, extern 및 inline의 개념과 사용 방법에 대해 알아보고자 합니다.
Static은 전역 변수, 지역 변수, 함수 및 메소드에 사용될 수 있는 한정자입니다. 전역 변수에 사용할 경우 해당 변수는 파일 범위에서만 유효하며 다른 파일에서는 접근할 수 없습니다. 또한, 지역 변수에 사용할 경우 해당 변수는 해당 블록 내에서만 유효하며 다른 블록에서는 접근할 수 없습니다. 함수와 메소드에 사용할 경우 해당 함수 및 메소드는 정적으로 선언되어 프로그램 실행 시 메모리에 상주하게 되며 다른 파일에서는 사용할 수 없습니다. Static을 사용하면 전역 변수와 함수의 이름 충돌을 방지하고 파일 간에 데이터 은닉과 보호를 제공할 수 있습니다.
Extern은 변수와 함수를 선언할 때 사용되는 한정자로, 변수나 함수가 다른 파일에 정의되어 있다는 것을 컴파일러에 알려줍니다. Extern을 사용하면 다른 파일에서 정의된 변수나 함수를 현재 파일에서 사용할 수 있게 됩니다. 이는 다른 파일에서 정의한 전역 변수나 함수를 현재 파일에서 사용하고자 할 때 유용합니다. Extern은 다른 파일에서 정의된 변수나 함수를 현재 파일에서 사용할 수 있도록 링커에 알려주는 역할을 합니다.
Inline은 함수의 실행 시간을 단축시키기 위해 사용되는 한정자로, 함수를 호출하는 곳에 함수의 코드를 삽입하는 역할을 합니다. Inline 함수는 함수 호출에 따른 오버헤드를 줄이고 실행 시간을 최적화할 수 있기 때문에 성능을 개선하는 데 유용합니다. Inline 함수는 일반적으로 짧은 코드를 가진 함수에 사용되며, 함수의 소스 코드가 직접 위치한 곳에서만 사용할 수 있습니다.
이상처럼 Objective-C에서 Static, extern 및 inline은 각각 다른 목적과 사용법을 갖고 있습니다. 이 키워드들을 적절히 활용하면 변수와 함수의 범위를 제어하고 성능을 향상시킬 수 있습니다. Objective-C 개발자들은 이러한 키워드들에 대한 이해와 활용을 통해 효율적이고 성능 좋은 애플리케이션을 개발할 수 있을 것입니다.
반응형
Comments