336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

개념 : 


1. 무엇이든 가르킬수 있는 포인터


2. void 형으로는 사용할수 없으므로 항상 형변환을 화여 사용하여 줍니다.




목표 : 


매개 변수로 void 형과 타입을 받아 앞에 1바이트를 읽어 들이고 식별하여 상황에 맞게 움직이는 포인터를 만들어 보자




소스코드 : 

#include <stdio.h>

#define MAX 256

#define type_String (unsigned char)0

#define type_Integer (unsigned char)1


struct tagStruct1

{

unsigned char type;

unsigned char szBuffer[MAX];

};


struct tagStruct2

{

char type;

int nNumber;

};


void Process(void *); // 포로토 타입 선언


void main(void)

{

//< 데이터를 선언

struct tagStruct1 Data1;

struct tagStruct2 Data2;


//Data1 정의

Data1.type = type_String;

sprintf_s(Data1.szBuffer, sizeof(Data1.szBuffer), " Type1의 데이터 입니다. 어떠한 문자열을이든 저장할수 있겠군요.");


//Data2 정의

Data2.type = type_Integer;

Data2.nNumber = 38;


void *pInput = (void*)&Data1;


Process(pInput);


pInput = (void*)&Data2;


Process(pInput);


return;

}


void Process(void* pData)

{

unsigned char type = *(char*)pData;


switch (type)

{

case type_String:

puts(" tagSturct1 식별 ");

puts(((struct tagStruct1*)pData)->szBuffer);

puts("");

break;


case type_Integer:

puts(" tagSturct2 식별 ");

printf("정수 출력 : %d \n\n", ((struct tagStruct2*)pData)->nNumber);

break;


default:

break;

}

}



결과 



#c언어, #c언어입문, #프로그램입문, #void포인터


'Programing - C > C Basic grammar ' 카테고리의 다른 글

105 fopen(파일생성)  (0) 2017.08.10
104 함수 포인터  (0) 2017.08.07
102 구조체를동적할당해서포인터로사용해보기  (0) 2017.08.07
101 구조체(struct)  (0) 2017.08.07
100 다차원 배열  (0) 2017.08.04

+ Recent posts