>백엔드 개발 >C++ >C는 컴파일 및 구문 측면에서 C와 어떻게 미묘하게 다릅니까?

C는 컴파일 및 구문 측면에서 C와 어떻게 미묘하게 다릅니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-17 04:54:25584검색

How Does C Differ Subtly from C   in Terms of Compilation and Syntax?

C의 C에서 미묘한 이탈

C는 C의 하위 집합이라고 널리 알려져 있지만 자세히 살펴보면 미묘한 차이가 드러납니다. 다음은 C에서 컴파일되는 코드가 C에서 장애물에 부딪히는 몇 가지 예입니다.

임시 정의 없음

C에서 변수를 재정의하는 것은 불법입니다. 정의를 통해 후속 재정의가 가능합니다.

어레이 유형 비호환성

C는 크기가 있는 배열 유형과 없는 배열 유형을 구별하여 int[]와 int[N]을 호환되지 않게 만듭니다. 그러나 C에서는 이들을 서로 바꿔서 사용할 수 있습니다.

K&R 함수 구문

C에서는 함수 매개변수 목록이 반환 유형 바로 뒤에 오는 K&R 스타일의 함수 정의를 허용하지 않습니다. .

중첩 구조체 Scope

C는 클래스 범위를 갖도록 중첩 구조체를 정의하는 반면 C는 로컬 범위의 이전 동작을 고수합니다.

기본 int

C에서는 명시적인 유형 지정자 없이 "auto"를 사용하는 것이 유효하지 않습니다. int.

추가 C99 비호환성

C99에서는 추가 불일치가 발생했습니다.

배열 차원 지정자

C 함수의 배열 차원에서 선언 지정자를 허용하지 않습니다. C에서 허용되는 매개변수입니다.

가변 길이 배열

C에서는 가변 길이 배열에 대한 지원을 생략하는 반면, C에서는 일정하지 않은 크기의 배열을 선언하여 이를 허용합니다.

플렉시블 어레이 멤버

C에는 C에 있는 기능인 구조체 내 유연한 배열 멤버가 부족합니다.

제한 한정자

C에서는 제한 한정자를 도입합니다. 앨리어싱 분석을 지원하지만 C에서는 지원되지 않습니다.

위 내용은 C는 컴파일 및 구문 측면에서 C와 어떻게 미묘하게 다릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.