programing

MS Visual Studio 컴파일러에서 사용할 수 있는 C99 기능은 무엇입니까?

muds 2023. 10. 18. 23:08
반응형

MS Visual Studio 컴파일러에서 사용할 수 있는 C99 기능은 무엇입니까?

마이크로소프트의 비주얼 스튜디오 컴파일러는 C99를 지원하지 않는 것으로 잘 알려져 있으며, 이를 지원계획은 없는 것으로 보입니다.

그러나 컴파일러는 가변 매크로와 같은 체리 픽 기능을 포함합니다.long long- 이 답변의 인용문을 참조하십시오.

특정 C99 기능에 대한 많은 요청을 받은 곳에서 구현을 시도했습니다.몇 가지 예로 다양한 매크로를 들 수 있습니다.long long,__pragma,__FUNCTION__,그리고.__restrict 작업에 유용한 다른 C99 기능이 있다면 알려주세요!저희 C 사용자들로부터는 소식이 별로 없으니 말씀을 크게 하시고 직접 말씀을 해주십시오.

-- ISO C 표준 위원회의 마이크로소프트 대표인 Arjun Bijanki http://blogs.msdn.com/b/vcblog/archive/2007/11/05/iso-c-standard-update.aspx

또한 새로운 버전의 비주얼 스튜디오는 C99에서 요구하는 헤더의 일부를 포함하고 있는 것으로 보입니다.

특정 기능에 대한 질문이 많습니다. 하지만 제가 알고 싶지 않은 것은 다음과 같습니다.현재 MSVC 컴파일러에서 지원/제공하는 C99 기능 목록은 어디서 찾을 수 있습니까?

는 gcc에 대해 이와 같은 목록을 찾고 있습니다.

다행히 이 문제에 대한 마이크로소프트의 입장은 바뀌었습니다.MSVC++ 버전 12.0(Visual Studio 2013의 일부)에 대한 지원이 추가되었습니다.

  • _Bool형.
  • 복합 리터럴.
  • 지정된 이니셜라이저입니다.
  • 선언과 코드를 혼합하는 중입니다.
  • __func__미리 정의된 식별자.

매크로에서 1800 이상의 값을 확인하여 이러한 기능이 지원되는지 확인할 수 있습니다.

표준 라이브러리 지원은 업데이트되었으며 MSVC 14.0(Visual Studio 2015) 이후 대부분 완료되었습니다.이번 릴리스는 또한 다음을 추가했습니다.inline키워드.

restrictVisual Studio 2019 Release 16.8에는 키워드, 적합한 전처리기 및 C11 지원 기능이 포함되어 있지만 C11에서 옵션으로 제공되는 일부 필수 C99 기능은 포함되어 있지 않습니다.

비주얼 스튜디오 2022 버전 17.5, C11 원자 프리미티브유형 지원 추가 (stdatomic.h).

이전 버전에서 이미 지원했던 것들 (적어도 MSVC 7.1 / Visual Studio 2003 이후로):

  • //스타일 코멘트
  • long long형.
  • 유연한 어레이 구성원(Microsoft는 이들을 "unsized array"라고 칭함)
  • 가변 매크로(최소 부분적).

여전히 누락된 것:

  • 가변 길이 배열(C11에서 선택 가능, 계획 없음).
  • _Complextype(계획되지 않은 C11의 옵션).
  • C11 멀티스레딩(로드맵의 옵션 기능).

MSVC에서 지원되는 C99(C90에 없는)의 유일한 비라이브러리 언어 기능은//평.C 모드로 컴파일할 때 이외에 C99 기능은 MS 컴파일러가 지원하는 C++ 표준/초안 표준/TR에서 가져온 기능이기 때문에 Microsoft에서 가져온 C99 라이브러리 기능 덕분입니다.예를 들어, 당신은.stdint.hC++ TR1 드래프트에 있었기 때문에 VS 2010에서.

마이크로소프트는 MSVC에서 C99를 지원하기 위해 자원을 할당하려는 시장의 강력한 압력을 받지 않는다는 점을 분명히 했습니다. 따라서 MSVC의 C 컴파일러 모드에서 볼 수 있는 C99의 유일한 부분은 C++ 때문에 도입되는 부분일 것이 거의 확실합니다.

가 답답하게 생각하는 것 중 하나는 오랫동안 C++의 일부였던 도서관이 아닌 C99 언어 기능을 C 모드에서는 사용할 수 없다는 것입니다.개인적으로 C 코드를 컴파일할 때 문장과 선언문을 혼합하는 C99 기능만 지원된다면 큰 도움이 될 것 같습니다.

하지만 오늘날 MSVC와 함께 C에서 볼 수 있는 언어 기능은 앞으로 여러분이 얻게 될 것입니다.

언급URL : https://stackoverflow.com/questions/9610747/which-c99-features-are-available-in-the-ms-visual-studio-compiler

반응형