산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 산업기술

C의 보이드 포인터:코딩 경험에 필요한 이유

프로그래밍 언어에서 특정 개념은 코딩을 훨씬 쉽게 만듭니다. 예를 들어, void 포인터는 C 프로그래밍 언어의 최종 사용자 입력에서 특정 데이터 유형을 결정합니다. 따라서 C에서 void 포인터에 대해 논의하도록 합니다.

다른 것들과 마찬가지로 void 포인터는 유연성을 위한 관련 기능을 가지고 있습니다. 그러나 코딩할 때 시간을 절약하려면 이동 포인터 함수가 void 포인터입니다. 이 포인터를 사용하면 다른 개체 유형을 동시에 저장하고 검색할 수 있습니다. 계속해서 C의 void 포인터와 관련된 코딩 기술에 대해 모두 배우게 됩니다.

(프로그래밍 언어의 이미지)

1. C에서 보이드 포인터란 무엇입니까?

일반적으로 void 포인터는 관련 데이터 유형이 없는 포인터입니다. 즉, 빈 용기와 같습니다. 이 기능을 사용하면 알 수 없는 데이터 유형의 유형 변수 주소를 보유할 수 있습니다.

C의 void 포인터 기능을 사용하면 다른 데이터 유형으로 유형 변환하여 메모리를 쉽게 할당할 수 있습니다. 결과적으로 이것은 메모리 할당에서 바이트와 같은 유연한 기능을 허용합니다. 또한 C의 void 포인터는 일반 기능을 수행하는 데 도움이 됩니다.

(C 프로그래밍 언어로 된 간단한 "Hello World" 프로그램)

https://commons.m.wikimedia.org/wiki/File:C_Hello_World_Program.png

2. C에서 Void 포인터는 어떻게 작동합니까?

전반적으로 포인터 기능은 프로그래밍에 필수적입니다. 적어도 우리는 관리 및 메모리 할당을 처리하는 것이 중요하다는 것을 알고 있습니다.

두 가지 다른 포인터 유형이 있습니다. 일반 포인터와 무효 포인터. 그러나 우리의 초점은 void 포인터와 C에서 어떻게 작동하는지에 있습니다.

C에서 void 포인터를 사용하려면 "void" 키워드로 정보를 선언하기만 하면 됩니다.

전반적으로 참조 및 역참조는 범용 포인터 개념에서 한 역할을 합니다. 이 경우 역참조는 포인터 변수에 저장된 값을 얻을 때입니다.

따라서 포인터 값이 사용 가능한 데이터 유형과 연결되지 않은 경우 옵션으로 유형 변환이 있습니다.

그러나 void 포인터는 어떠한 산술 연산도 지원하지 않습니다. 대신 간접 연산자 "*"를 사용합니다. 이러한 이유로 관련 데이터 유형이 없는 경우 유형 변환이 필요합니다. 따라서 Typecasting은 void 포인터와 함께 선언된 데이터 유형과 관련됩니다. 그렇지 않으면 프로그램을 실행하면 컴파일러 오류가 표시됩니다.

void 크기는 C의 문자 포인터와 비슷합니다. 크기 개체는 포인터 플랫폼에 따라 다릅니다.

이러한 메모리 관리 함수는 malloc() 및 calloc()입니다. 그 대가로 이러한 함수는 필요한 데이터 유형의 메모리를 할당하는 데 도움이 됩니다. 어떤 면에서 메모리 할당은 함수 포인터가 다른 기능을 향상시킬 수 있도록 하는 형식을 사용합니다.

(C에서 포인터가 작동하는 방식을 보여주는 그림).

https://commons.m.wikimedia.org/wiki/File:C_pointer_3.svg

3. 무효 포인터의 구문

일반적으로 프로그래밍 함수를 가져오려면 올바른 구문을 사용하는 것이 가장 좋습니다. 따라서 C에서 void 포인터의 구문은 다음과 같습니다.

무효 *pointer_name;

여기서 "void"는 포인터 유형의 키워드입니다. 그래서 우리는 우리가 가리키고 주소 할당을 제공하는 포인터의 이름을 가지고 있습니다.

아래의 예를 들어보겠습니다.

정수 b =6

문자 c ='z';

따라서 void 포인터 변수를 포함하는 경우 다음과 같습니다.

무효 *p =&b; // void 포인터는 int 'b'를 정수의 주소로 할당하고 유지합니다.

피 =&c; // void 포인터는 char 'c' 주소도 보유합니다.

더 나아가 몇 가지 구문 예제를 강조해 보겠습니다.

정수 i=6; // 정수 변수 초기화.

정수 *p; // 정수 포인터 선언.

무효 *ptr; // 무효 포인터 선언.

플로트 *fp; // 부동 포인터 선언.

p=fp; // 유효하지 않은 포인터.

ptr=p; // 유효한 포인터.

fp=&i; // 유효하지 않은 포인터.

ptr=&i; // 유효한 포인터.

ptr=fp; // 유효한 포인터.

4. 샘플 코드가 있는 C의 일부 무효 포인터 예

계속해서 아래 코드 스니펫에서 void 포인터 인수의 예를 살펴보겠습니다.

샘플 코드 #1

첫 번째 코드 샘플에서 malloc() 함수를 사용하는 방법을 보여줍니다. 따라서 다음과 같습니다.

#include

#include

정수 메인()

{

정수 a=90;

int *x =(int*)malloc(sizeof(int));

x=&a;

printf("x 포인터가 가리키는 값 :%d",*x);

0을 반환합니다.

}

출력

샘플 코드 #2

이 다음 코드에서는 유형 캐스팅 개념을 보여줍니다.

#include

정수 메인()

{

무효 *ptr =NULL; // 무효 포인터 변수

int *p =NULL;// 정수 포인터 변수

char *cp =NULL;//문자 포인터 변수

float *fp =NULL; // float 포인터 변수

//포인터 크기 무효

printf("무효 포인터 크기 =%d\n\n",sizeof(ptr));

//정수 포인터 크기

printf("정수 포인터 크기 =%d\n\n",sizeof(p));

//문자 포인터 크기

printf("문자 포인터 크기 =%d\n\n",sizeof(cp));

//부동 포인터 크기

printf("부동 포인터 크기 =%d\n\n",sizeof(fp));

0을 반환합니다.

}

출력

그렇지 않으면 C 프로그래밍의 void 포인터 코드에 대한 아래 첨부된 비디오 링크를 참조하십시오.

https://youtu.be/-503stjWLhc

5. 무효 포인터 사용

지금까지 void 포인터는 C 언어 프로그래밍과 관련이 큽니다.

더 나은 이해를 위해 아래 코드 샘플을 참조하십시오. 그 중 일부는 다음과 같습니다.

#include

메인() 무효

{

int num=10;//일반 변수 초기화

void *ptr;//void 포인터 선언

ptr=#//Ptr 포인터를 num으로 지정

printf("정수 변수의 값은 =%d",*ptr );

}

그러나 이 코드를 실행하면 컴파일 타임 오류가 발생합니다. 포인터를 역참조하기 위해 동일한 코드에서 유형 변환을 사용하면 원하는 출력을 얻을 수 있으므로 다음과 같이 됩니다.

#include

메인() 무효

{

int num=10;//일반 변수 초기화

void *ptr;//void 포인터 선언

ptr=#//Ptr 포인터를 num으로 지정

printf("정수 변수 값은 %d입니다.", *(int*)ptr );// 타입캐스팅을 사용한 역참조

}

정수 변수 값은 10입니다.

따라서 형변환을 통해 void 포인터를 역참조할 수 있습니다.

따라서 void 포인터에서는 포인터 산술이 유효하지 않지만 유형 캐스팅은 이 문제를 해결하는 데 도움이 됩니다. 출력은 다음과 같습니다.

(Void 포인터는 데이터 변수의 위치를 ​​​​공개하여 코딩을 쉽게 만듭니다)

설명을 위해 아래 코드를 참조하세요.

정수 메인(무효)

{

// malloc() 함수는 void *를 반환한다는 점에 유의하십시오.

// 다음으로 char *, int *,…

int *x =malloc(sizeof(int) * n);

}

참고로 위의 프로그램은 C로만 컴파일됩니다.

  • 마지막으로 void 포인터 변수는 C에서 일반 함수를 구현하는 데 도움이 됩니다.

결론

void 포인터 함수는 일반적으로 필수적인 프로그래밍 도구입니다. 프로그래머는 관련 데이터 유형이 없기 때문에 유용하다고 생각합니다. 적어도 서로 다른 값과 데이터 클래스를 가리키는 포인터의 혼동을 제거합니다. 따라서 void 포인터는 과도한 유형 캐스팅을 줄입니다. 일반 포인터 유형의 데이터도 지원합니다. 따라서 범용 컴파일러이기도 합니다.

c에서 void 포인터 작업에 대한 완전한 가이드가 있습니다. 그러나 문의 사항이 있거나 다른 프로그래밍 리소스가 필요한 경우 문의 페이지를 항상 사용할 수 있습니다.


산업기술

  1. 압축 공기 시스템에 대한 공기 에너지 감사가 필요한 이유
  2. 토크 제한기란 무엇이며 왜 필요한가요?
  3. 유압 클램프란 무엇이며 왜 필요한가요?
  4. 산업 문서를 디지털화해야 하는 4가지 이유
  5. Andon 시스템을 반드시 구축해야 하는 이유는 무엇입니까?
  6. 플라즈마 절단:지금 매장에 플라즈마 테이블이 필요한 4가지 이유
  7. 워터젯 절단이 필요한 10가지 이유
  8. 기계 철공이 필요한 이유는 무엇입니까?
  9. 소형 서보 프레스가 필요한 이유는 무엇입니까?
  10. 5축 머시닝 센터가 필요한 이유는 무엇입니까?