2012-02-20 2 views
8

한정자와 한정자의 차이점을 알고 싶습니다. 어떤 책들은 volatile이 수정 자라고 제안하고, 다른 책은 그것을 한정어로 간주합니다.C의 한정자와 한정자의 차이점은 무엇입니까?

그래서 변수와 관련하여 정확히 수식어와 한정어는 무엇입니까?

+0

보너스 질문 : 여기에 "선언 지정자"가 어디에 적합합니까? – Kos

+1

@Kos : "선언 지정자"는 좀 더 일반적인 범주입니다. 실제로 C 문법에는 단 하나의 "선언 지정자"같은 것이 없지만 "선언 지정자"는 저장 클래스 지정자 ('typedef','static','extern','auto','register') 목록입니다.), 한정자 ('const','restrict','volatile'), 함수 지정자 (''inline''), 타입 정의 (''비공식적으로 ' –

+0

책의 저자에게 물어 보면 그들은 파란색에서 "수식어"라는 용어를 사용했다. 그러한 용어는 없습니다. – Lundin

답변

6

volatile한정자입니다.

const, restrict, volatile 및 C11 _Atomic은 C 유형 한정자입니다.

개체를 선언 할 때 C 용어는 한정자이라는 단어를 사용하지 않습니다.

+0

스토리지 클래스에 대해 어떻게 생각하십니까? 한정자에도 해당합니까? –

+0

'static'과'extern'은 한정자가 아닌 저장 클래스 지정자입니다. 한 가지 차이점은 정의에만 사용되는 반면 한정자는 선언에 사용될 수 있다는 것입니다. – ugoren

+0

@ugoren : 그래도 구문에는 차이가 없습니다. 표준 상태의 여러 부분이 저장소 클래스 지정자를 사용하는 거의 모든 개체 선언이 정의, 한 가지 방법 또는 기타 (자동이거나 임시 정의이거나 외부 정의이거나 가능한 경우) 때문입니다. 내가 생각하지 못했던 다른 종류의 정의). –

관련 문제