반응형
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
- 데이터베이스
- 2
- 빅데이터
- Yes
- 데이터구조
- 자료구조
- 딥러닝
- 자바스크립트
- 인공지능
- 데이터분석
- 머신러닝
- 파이썬
- 컴퓨터공학
- 프로그래밍
- 소프트웨어
- 사이버보안
- 코딩
- 네트워크
- 웹개발
- 소프트웨어공학
- 컴퓨터과학
- 프로그래밍언어
- 컴퓨터비전
- 알고리즘
- 클라우드컴퓨팅
- 보안
- I'm Sorry
- 네트워크보안
- 데이터과학
- 버전관리
Archives
- Today
- Total
스택큐힙리스트
C++에서 main 함수를 extern "C"로 선언하는 것은 합법적인가요? 본문
반응형
저는 저레벨 프로그래머이기 때문에 자주 수행 파일의 모듈 시작 코드와 함께 작업하므로 crt0와 같은 코드가 어떻게 작동하는지 잘 이해하고 있습니다. C++ 코드를 작성할 때, C 시작 코드가 main 함수를 호출하기 위해 수행할 작업과 일치하도록 보통 main 함수를 extern C로 선언합니다. 따라서 일반적으로 아래와 같은 선언을 main 함수 (Windows을 특정하게 대상으로 하는 경우에는 wmain 함수)에 사용합니다:
extern C int main(int argv, const char *const *argv)
extern C int __cdecl wmain(int argv, const wchar_t *const *argv)
main 함수에서 extern C을 사용하는 것은 합법일까요? 또한, argv의 타입으로 const char *const *을 사용하는 것은 char *[]와 대체 가능한 것일까요?
답변 1
연결은 구현이 정의되어 있습니다 (3.6.1p3) :
main의 링크 (3.5)는 구현에 따라 정의됩니다.
또한, 나중에 한 질문에 대해서는 const char* const*
(3.6.1p2)이 완전히 허용되는 것입니다:
구현은 main 함수를 사전 정의해서는 안 됩니다. 이 함수는 함수 오버로딩을해서는 안 되며, int형의 반환 유형을 가져야하지만 그 외의 유형은 구현에 정의되어 있습니다.
답변 2
Yes, it is legal in C++ to declare the main function as extern C. Here's an SEO-conscious Korean essay on this topic:제목: C++에서 extern C으로 main 함수를 선언하는 것은 합법적인가요?
서론:
C++은 유연하고 강력한 프로그래밍 언어로 알려져 있습니다. 이 언어는 다양한 기능과 기능을 제공하여 개발자들에게 많은 유연성을 제공합니다. 그러나 extern 'C'를 사용하여 기능을 선언할 때 몇 가지 제한 사항이 있을 수 있습니다. 이에 대해서 알아보고, 'extern C'로 main 함수를 선언하는 것이 합법적인지 알아보겠습니다.
본론:
C++에서 extern 'C'를 사용하는 가장 일반적인 이유는 C 언어와의 상호 운용성을 위해 입니다. C++은 많은 C++ 고유의 기능과 기능을 제공하지만, 때로는 C 언어와의 상호 운용성이 필요할 때가 있습니다. 'extern C' 키워드를 사용하면 C++ 컴파일러에게 특정 함수를 C 스타일로 링크하도록 지시할 수 있습니다.
main 함수는 프로그램의 시작점으로, C++에서 특별하게 처리됩니다. C++ 컴파일러는 자동으로 main 함수를 호출하고 초기화하는 기능을 제공합니다. 따라서 main 함수를 'extern C'로 선언하는 것이 일반적인 상황에서는 필요하지 않을 수 있습니다.
그러나 가끔은 특정 상황에서 main 함수를 C 스타일로 선언하는 것이 유용할 수 있습니다. 예를 들어, C++ 프로그램을 다른 언어와 상호 운용하거나, 외부 인터페이스와 통신해야 하는 경우 등이 있습니다. 이런 경우 'extern C'를 사용하여 main 함수를 C 스타일로 구현하는 것이 필요할 수 있습니다.
중요한 점은 C++에서 'extern C'로 main 함수를 선언하는 것은 합법적이라는 것입니다. C++ 언어 사양은 main 함수의 서명을 제한하지 않기 때문입니다. 그러나 이는 C++ 컴파일러에게서 지원되지 않을 수 있으며, 프로그램이 제대로 작동하지 않을 수 있으므로 주의가 필요합니다.
결론:
C++에서 main 함수를 extern C로 선언하는 것은 합법적입니다. 이는 C++ 언어 사양에서 허용하기 때문입니다. 그러나 이러한 선언은 주의해서 사용해야 합니다. main 함수에 대한 C 스타일의 선언이 필요한 특정 상황에서만 사용해야 하며, 일반적으로는 필요하지 않을 수 있습니다. 따라서 개발자는 프로그램의 요구 사항에 맞게 적절한 방법을 선택해야 합니다.
키워드: C++, extern C, main 함수, 합법적인 선언, 상호 운용성
반응형
Comments