2020.09.17

마이크로소프트 비주얼 스튜디오, ‘C 언어’ 지원 강화

Paul Krill | InfoWorld
마이크로소프트의 ‘비주얼 스튜디오 IDE(Visual Studio IDE)’가 C 언어 표준 ‘C11’과 ‘C17’의 지원을 추가하고 제한됐던 기능 지원을 확장했다. 지난 9월 14일 공개한 비주얼 스튜디오 2019 버전 16.8 프리뷰 3부터 C11과 C17 버전이 지원된다. 

그동안 비주얼 스튜디오는 C++ 언어에 필요한 만큼만 C 언어를 지원해왔다. 지난 14일(현지 시각) 마이크로소프트는 공식 블로그를 통해 표준에 부합하는 토큰기반 전처리기(token-based preprocessor)가 컴파일러에 추가되면서 상황이 달라졌다고 밝혔다. 이어서 /std:c11/std:c17라는 두 개의 컴파일러 스위치가 추가돼 최신 ISO C 표준을 공식 지원하게 됐다고 덧붙였다. 
 
ⓒGetty Images

회사에 따르면 _Pragma, restrict, Static_assert 등을 포함해 C11과 C17의 모든 필수 기능이 지원된다. 비주얼 스튜디오의 소스코드 자동완성 프로그램인 인텔리센스(IntelliSense)도 이 기능들과 네이티브하게 작동하며, C 코드 구문 강조 표시를 활성화하려면 소스파일에 .c 파일 확장자를 사용하거나 /TC 컴파일러 스위치를 사용하면 된다. 그러나 인텔리센스 하이라이팅은 현재 표준 헤더에서 도입한 매크로가 아닌 키워드에서만 사용할 수 있다. 이는 이후 릴리스에서 수정될 예정이다. 

표준에 맞는 토큰 기반 전처리기가 포함된 두 개의 새 C 컴파일러 스위치는 /Zc: 전처리기를 의미한다는 게 회사 측 설명이다. C11 또는 C17과 함께 기존의 문자 기반 전처리기(character-based preprocessor)를 사용하려면 /Zc: 전처리기 컴파일러 스위치를 전달해야 한다. 

마이크로소프트는 C17을 ISO C의 버그 수정 릴리즈라고 설명했다. C11과 C17 버전의 차이점은 C17의 _STDC_version 매크로뿐이다. 비주얼 스튜디오는 현재 C11의 선택적 기능을 지원하지 않지만 향후 릴리즈에서 가장 많이 쓰이는 선택적 기능을 추가할 계획이다. 아토믹(atomic) 및 스레드 지원 또한 제품 로드맵에서 확인할 수 있다. 

C11과 C17을 사용하려면 표준에 맞는 전처리기 및 새 유니버설 C 런타임(Universal C Runtime)에서 작동하는 최신 인사이드 프리뷰 윈도우 SDK(Insider Preview Windows SDK) 업데이트가 필요하다. 개발자는 무료 마이크로소프트 계정(https://signup.live.com)을 생성한 다음 인사이더 프로그램에 참여하면 된다. 

한편 비주얼 스튜디오 2019 버전 16.8 프리뷰 3는 컴파일러, 표준 라이브러리, IDE에서 C++ 20 지원을 한층 개선했다. 모듈, 개념, 코루틴 및 일부 범위를 동일한 프로젝트에서 사용할 수 있다. ciokr@idg.co.kr
 



2020.09.17

마이크로소프트 비주얼 스튜디오, ‘C 언어’ 지원 강화

Paul Krill | InfoWorld
마이크로소프트의 ‘비주얼 스튜디오 IDE(Visual Studio IDE)’가 C 언어 표준 ‘C11’과 ‘C17’의 지원을 추가하고 제한됐던 기능 지원을 확장했다. 지난 9월 14일 공개한 비주얼 스튜디오 2019 버전 16.8 프리뷰 3부터 C11과 C17 버전이 지원된다. 

그동안 비주얼 스튜디오는 C++ 언어에 필요한 만큼만 C 언어를 지원해왔다. 지난 14일(현지 시각) 마이크로소프트는 공식 블로그를 통해 표준에 부합하는 토큰기반 전처리기(token-based preprocessor)가 컴파일러에 추가되면서 상황이 달라졌다고 밝혔다. 이어서 /std:c11/std:c17라는 두 개의 컴파일러 스위치가 추가돼 최신 ISO C 표준을 공식 지원하게 됐다고 덧붙였다. 
 
ⓒGetty Images

회사에 따르면 _Pragma, restrict, Static_assert 등을 포함해 C11과 C17의 모든 필수 기능이 지원된다. 비주얼 스튜디오의 소스코드 자동완성 프로그램인 인텔리센스(IntelliSense)도 이 기능들과 네이티브하게 작동하며, C 코드 구문 강조 표시를 활성화하려면 소스파일에 .c 파일 확장자를 사용하거나 /TC 컴파일러 스위치를 사용하면 된다. 그러나 인텔리센스 하이라이팅은 현재 표준 헤더에서 도입한 매크로가 아닌 키워드에서만 사용할 수 있다. 이는 이후 릴리스에서 수정될 예정이다. 

표준에 맞는 토큰 기반 전처리기가 포함된 두 개의 새 C 컴파일러 스위치는 /Zc: 전처리기를 의미한다는 게 회사 측 설명이다. C11 또는 C17과 함께 기존의 문자 기반 전처리기(character-based preprocessor)를 사용하려면 /Zc: 전처리기 컴파일러 스위치를 전달해야 한다. 

마이크로소프트는 C17을 ISO C의 버그 수정 릴리즈라고 설명했다. C11과 C17 버전의 차이점은 C17의 _STDC_version 매크로뿐이다. 비주얼 스튜디오는 현재 C11의 선택적 기능을 지원하지 않지만 향후 릴리즈에서 가장 많이 쓰이는 선택적 기능을 추가할 계획이다. 아토믹(atomic) 및 스레드 지원 또한 제품 로드맵에서 확인할 수 있다. 

C11과 C17을 사용하려면 표준에 맞는 전처리기 및 새 유니버설 C 런타임(Universal C Runtime)에서 작동하는 최신 인사이드 프리뷰 윈도우 SDK(Insider Preview Windows SDK) 업데이트가 필요하다. 개발자는 무료 마이크로소프트 계정(https://signup.live.com)을 생성한 다음 인사이더 프로그램에 참여하면 된다. 

한편 비주얼 스튜디오 2019 버전 16.8 프리뷰 3는 컴파일러, 표준 라이브러리, IDE에서 C++ 20 지원을 한층 개선했다. 모듈, 개념, 코루틴 및 일부 범위를 동일한 프로젝트에서 사용할 수 있다. ciokr@idg.co.kr
 

X