[c] C99에서 가장 유용한 새 기능은 무엇입니까? [닫은]

C99 는 10 년 이상 사용되었지만 지원이 느리게 진행되어 대부분의 개발자가 C89를 고수했습니다. 지금도 C 코드에서 C99 기능을 발견하면 가끔 약간 놀랐습니다.

이제 대부분의 주요 컴파일러가 C99를 지원하므로 (MSVC는 주목할만한 예외이며 일부 임베디드 컴파일러도 뒤처짐) C로 작업하는 개발자는 C99 기능을 사용할 수 있는지 알아야합니다. 일부 기능은 이전에 표준화 된 적이없는 일반적인 기능 ( snprintf예 :)이거나 C ++ (유연한 변수 선언 배치 또는 한 줄 //주석) 에서 익숙 하지만 일부 새로운 기능은 C99에서 처음 도입되었으며 많은 프로그래머에게 익숙하지 않습니다.

C99에서 가장 유용한 새 기능은 무엇입니까?

참고로 C99 표준 (초안으로 표시되어 있지만 내가 아는 한 업데이트 된 표준과 동일), 새로운 기능 목록GCC C99 구현 상태가 있습니다.

답변 당 하나의 기능을 사용하십시오. 여러 답변을 남겨주세요. 새로운 기능을 보여주는 짧은 코드 예제가 권장됩니다.



답변

나는 타이핑에 너무 익숙해

C ++에서는 C99가 아닌 컴파일러를 사용하는 것이 고통 스럽습니다.


답변

stdint.h정의되는 int8_t, uint8_t등 없음은 더 정수가 얼마나 폭에 대한 비 휴대용 가정을 할 필요.


답변

새로운 초기화 메커니즘이 매우 중요하다고 생각합니다.

OK-설득력있는 예는 아니지만 표기법은 정확합니다. 배열의 특정 요소와 구조의 특정 멤버를 초기화 할 수 있습니다.

아마도 더 나은 예는 이것이 될 것입니다.


답변

가변 길이 배열 :


답변

로 시작하는 한 줄 주석 지원 //.


답변

블록의 시작이 아닌 다른 위치에서 변수를 선언 할 수 있습니다.


답변

가변 매크로. 인수의 무제한으로 상용구 코드를 더 쉽게 생성 할 수 있습니다.