Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

예를 들어 C의 volatile 및 제한 유형 한정자를 설명합니다.

<시간/>

유형 한정자는 C 프로그래밍 언어의 기존 데이터 유형에 특수 속성을 추가합니다.

예를 들어 C의 volatile 및 제한 유형 한정자를 설명합니다.

C 언어에는 세 가지 유형 한정자가 있으며 휘발성 및 제한 유형 한정자는 아래에 설명되어 있습니다 -

휘발성

휘발성 유형 한정자는 변수가 공유됨을 컴파일러에 알리는 데 사용됩니다. 즉, 변수가 volatile로 선언되면 다른 프로그램(또는) 엔터티에서 변수를 참조하고 변경할 수 있습니다.

예를 들어, 휘발성 int x;

제한

이것은 포인터에만 사용됩니다. 포인터가 참조 데이터에 액세스하는 초기 방법일 뿐임을 나타냅니다. 최적화를 위해 컴파일러에 더 많은 도움을 제공합니다.

예시 프로그램

다음은 휘발성 유형 한정자를 위한 C 프로그램입니다 -

   int *ptr
   int a= 0;
   ptr = &a;
   ____
   ____
   ____
      *ptr+=4; // Cannot be replaced with *ptr+=9
   ____
   ____
   ____
      *ptr+=5;

여기서 컴파일러는 *ptr+=4 및 *ptr+=5 두 문을 *ptr+=9 한 문으로 바꿀 수 없습니다. 변수 'a'에 직접(또는) 다른 포인터를 통해 액세스할 수 있는지 여부가 명확하지 않기 때문입니다.

예:

   restrict int *ptr
   int a= 0;
   ptr = &a;
   ____
   ____
   ____
      *ptr+=4; // Can be replaced with *ptr+=9
   ____
   ____
      *ptr+=5;
____
   ____
로 대체 가능

여기서 컴파일러는 두 명령문을 *ptr+=9 하나의 명령문으로 바꿀 수 있습니다. 다른 리소스를 통해 변수에 액세스할 수 없음이 확실하기 때문입니다.

예시

다음은 제한 키워드 사용을 위한 C 프로그램입니다 -

#include<stdio.h>
void keyword(int* a, int* b, int* restrict c){
   *a += *c;
   // Since c is restrict, compiler will
   // not reload value at address c in
   // its assembly code.
   *b += *c;
}
int main(void){
   int p = 10, q = 20,r=30;
   keyword(&p, &q,&r);
   printf("%d %d %d", p, q,r);
   return 0;
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

40 50 30