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 기능 목록은 어디서 찾을 수 있습니까?
다행히 이 문제에 대한 마이크로소프트의 입장은 바뀌었습니다.MSVC++ 버전 12.0(Visual Studio 2013의 일부)에 대한 지원이 추가되었습니다.
_Bool
형.- 복합 리터럴.
- 지정된 이니셜라이저입니다.
- 선언과 코드를 혼합하는 중입니다.
__func__
미리 정의된 식별자.
매크로에서 1800 이상의 값을 확인하여 이러한 기능이 지원되는지 확인할 수 있습니다.
표준 라이브러리 지원은 업데이트되었으며 MSVC 14.0(Visual Studio 2015) 이후 대부분 완료되었습니다.이번 릴리스는 또한 다음을 추가했습니다.inline
키워드.
restrict
Visual 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에서 선택 가능, 계획 없음).
_Complex
type(계획되지 않은 C11의 옵션).- C11 멀티스레딩(로드맵의 옵션 기능).
MSVC에서 지원되는 C99(C90에 없는)의 유일한 비라이브러리 언어 기능은//
평.C 모드로 컴파일할 때 이외에 C99 기능은 MS 컴파일러가 지원하는 C++ 표준/초안 표준/TR에서 가져온 기능이기 때문에 Microsoft에서 가져온 C99 라이브러리 기능 덕분입니다.예를 들어, 당신은.stdint.h
C++ 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
'programing' 카테고리의 다른 글
CSS 센터 디스플레이 인라인 블록? (0) | 2023.10.23 |
---|---|
+=, |=, &= 등이 원자입니까? (0) | 2023.10.23 |
여러 테이블에서 조인과 선택 간의 성능 차이? (0) | 2023.10.18 |
개발자용 PowerShell (0) | 2023.10.18 |
카산드라를 사용하지 않을 때? (0) | 2023.10.18 |