달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

헥사뷰:hexaview,포인터, 함수포인터와 void 포인터

 

오늘은 void 포인터와 함수 포인터에 대하여 배웠습니다.

함수 포인터는 함수를 가리키는 포인터 입니다.

즉, '함수의 반환형+(포인터표시*+포인터명)+(인자)' 와 같이 쓰면 됩니다.

그런 후 사용법은 함수와 같이 하면 됩니다. 즉, '함수 포인터이름(인자)'와 같이 하면 됩니다.

Void 포인터는 형이 없는 포인터로서 'void*포인터이름'으로 선언합니다. 즉, 모든 자료형을 대입할 수 있으며, 대입 및 출력에는 원하는 자료형으로 지정을 하면 됩니다 (이를 캐스팅 이라 합니다).

 

아래의 헥사뷰를 예로 설명하겠습니다.

 

헥사뷰 함수를 선언하고, 메인에서 호출합니다.

메인에서 헥사뷰 함수 호출시에 인자로 inum의 주소를 전달했습니다.

 

 

아래 헥사뷰 함수를 보면..

Vpdata의 값(즉, inum의 주소)을 출력합니다.

 

 

아래 반복문에서는 1바이트 char형으로 출력을 하고 있습니다. 즉, 4바이트 숫자를 1바이트 씩 쪼개서 보고 싶기 때문에 이와 같이 쓰는 것입니다.

출력문에서 1바이트 자리만큼 출력을 한 후에 +1을 해주어, 다음 반복문에서 다음 바이트의 값을 나타내도록 하고 있습니다.

이렇게 메인의 inum 변수 메모리 공간의 값을 모두 출력하였습니다..그 후 옆 칸에 아스키 코드 출력을 위하여 아래의 코드를 작성합니다.

 

보면은 값이 32~127 사이 즉 아스키표에서 문자에 할당된 값일 때에만 해당 문자를 출력합니다.

 

함수포인터와 void 포인터 그리고 헥사뷰에서의 활용에 대하여 알아보았습니다.

추천 눌러주세요 ㅋㅋ

 

Posted by C언어 보이
|