얕은 기억 C 언어 성명 [이원7사 404]

2746 단어 변대

1 선언 및 정의


변수를 설명하는 것은 컴파일러에 변수의 유형을 설명하는 것을 의미하지만, 변수에 저장 공간을 분배하지 않습니다. 다른 곳에서 정의된 대상 (변수) 의 이름을 간단하게 설명합니다. 이 대상 (변수) 을 사용할 수 있도록 합니다.변수를 정의하는 것은 변수를 설명하는 동시에 변수에 저장 공간을 분배해야 한다는 것을 의미한다.C 언어에서 같은 변수는 여러 번 선언될 수 있지만 한 번만 정의될 수 있습니다.가장 전형적인 성명은 extern을 사용하는 것이다.이 느낌: 성명은 함수 성명을 제외하고 전용 extern으로 성명하는 것을 제외한 성명은 하나의 데이터를 정의하는 형식으로 나타난다(이 데이터는 해당하는 메모리를 분배하지 않았다고 정의한다). 예를 들어main 함수에 문장 inti를 쓴다.컴파일러가 i에 공간을 분배하지 않고 i가 초기화된 후에야 공간을 분배한다. 그러면 정의된 형식은 intj=1이다.이런 형식이 되자 즉각 공간이 분배되었다.
 
정의는 한 곳에서만 대상 (변수) 유형을 확정하고 메모리를 분배할 수 있습니다. 예를 들어 inta.
성명은 여러 번 설명 대상(변수) 유형을 나타낼 수 있으며 다른 곳에서 정의된 대상(변수), extern int a를 가리키는 데 사용된다.같은 파일 뒤에 정의된 글로벌 변수 또는 다른 파일에 정의된 글로벌 변수와 같습니다.
 

2 C 언어 선언


《C언어전문가프로그래밍》을 읽은 후에도 일부 지식점을 기재할 수 있다고 느꼈다.모든 성명의 핵심은 성명기 ------표지부호와 그것과 조합된 모든 지침, 함수 괄호, 그룹 하표 등이다.
대담하게 g의 예를 들어 어떤 성명기인지 말하다.
char (*p) [20];
여기서 (*p)는 식별자 p, 포인터 *, 괄호 ()로 구성된 성명기입니다.
그러면 이 전체 문장은 무슨 뜻을 나타냅니까?이것은 p가 아래 첨자 크기가 20인 문자 그룹을 가리키는 바늘임을 나타낸다.
 

3 C 언어 선언의 구성


최소한 하나의 유형 설명자[유형 설명자(void, int,char 등), 저장 유형(extern,static,auto,register,typedef), 유형 제한자(const,volatile)(정의할 때 유형 제한자가 있을 경우), 이 세 가지는 모든 조합이 합법적이지 않다], 있고 하나의 성명기, 분호만 있다.각 성명은 쉼표로 구분할 수 있다.
성명의 부품으로 성명을 구성하는 것은 모든 상황이 문법에 부합되는 것은 아니다.
 

4 C 언어 선언 분석


(1) 예


C 언어 전문가 프로그래밍
1> char * const *(*next)();
분석:next는 읽기 전용 문자형의 바늘을 가리키는 함수를 가리키는 바늘입니다. 또는:next는 읽기 전용 바늘을 가리키는 함수를 가리키는 바늘입니다. 이 함수는 다른 바늘을 되돌려줍니다. 이 바늘은 읽기 전용 char의 바늘을 가리킵니다.
 
2> char *(* c[10])(int **p);
분석: c는 10으로 표시된 각 요소가 int** 형식의 반환값이char*인 함수를 가리키는 함수 포인터의 수조이다. 또는 다음과 같다. c는 하나의 수조이고 각 요소는 함수 포인터이다. 이 함수 매개 변수 형식은 int**이고 반환값은char*이다.
 
3>char (*j)[20];
분석: j는 수조를 가리키는 바늘로 수조를 20으로 표시하고 이 수조 요소는char형이다.
 

(2) 분석 방법

  • A. 성명은 이름부터 읽고 우선순위에 따라 한 번 읽는다.
  • B. 우선순위가 높은 것부터 낮은 것까지는 다음과 같다. a. 성명에서 괄호로 묶인 부분.b. 접미사 조작부호: 괄호 ()는 함수임을 나타내고, 네모난 괄호 []는 수조를 나타낸다.c. 접두사 조작부호: 별표*는'지향.... 지침'을 나타낸다.
  • C. const와volatile 키워드의 뒤에 유형 설명자(int,char 등)가 붙어 있으면 유형 설명자에 작용한다.다른 경우, const와volatile 키워드는 왼쪽에 인접한 지침 별표에 작용합니다.
  • const :

    1>const int *grape;
    분석:const 키워드 뒤에 유형 설명자 int가 붙어 있기 때문에 유형 설명자에 작용하고grape가 가리키는 대상이 읽기만 하는 것을 나타낸다.
     
    2>int const *grape;
    분석:const 뒤에 유형 설명부호가 없습니다.왼쪽에도 별표가 없으면 const는 왼쪽의 0개의 별표에 작용하고grape가 가리키는 대상은 읽기만 하는 것으로 결정됩니다.
     
    3>int * const grape;
    분석:const는 인접한 유형 설명부호가 없고 왼쪽의 별표에 작용하여grape가 읽기만 하는 것을 나타낸다.
    volatile는 const와 같습니다.
     
    일반적으로 별표는 변수 정의 키워드(int,char) 왼쪽에 변수 내용을 수식하고 변수 정의 오른쪽에 변수 수식 변수를 정의한다.
     
    Note Over.

    좋은 웹페이지 즐겨찾기