type을 저장할 수 있나여?
글쓴이: moonzoo / 작성시간: 목, 2004/06/03 - 4:31오후
예를 들어 다음과 같이 여러개의 structure type이 정의되어 있고
이 structure들이 공통으로 사용할 함수가 다음과 같이 정의되어 있다면
typedef struct { ... }A; typedef struct { ... }B; typedef struct { ... }C; int foo( void * structure, int size, ... );
위와 같은 함수 foo에서 structure을 파라메터로 넘기면서
해당 파라메터의 type도 같이 넘길 수 있는 방법이 없을까요?
foo내부에서는 넘어온 type을 알아야만 합니다.
물론 type의 종류는 수십가지 이상이 될 수도 있는 상황입니다.
아이디어 있으신분 답변 부탁드립니다.
Forums:
음...
1. 구조체 처음 n바이트에 ID tag를 두고,
함수에서 받아 볼때 처음 n 바이트만 보고 type을 구별하는 것은 어떨까요?
2. 구조체의 사이즈가 틀리다면, 전달받은 인자의 크기로 구별하는 건 어떨까요
(물론 크기가 고정일때..후후..드물겠죠..=0= )
https://nicesj.com
https://blog.nicesj.com
type
그런식도 생각해 봣는데..
1이 넘어오면 A type이라고 정해야 하는데
소스 내에 임으로 해주긴 그렇고
1 ==> A , 2 ==> B , 3 ==> C structure등과 같이
전역으로 정의할 수 있는 어떠한 방법이 있을지가 가장 궁금합니다.
struct의 첫번째 컬럼에 공통적인 변수를 두고, 그 값으로 형태를 파
struct의 첫번째 컬럼에 공통적인 변수를 두고, 그 값으로 형태를 파악해야 합니다. Xlib의 Widget들이 이런 식으로 설계되어 있습니다. C 함수이면서 여러 종류의 창들에 다형성을 제공하게 됩니다.
그게 싫다면 C++을 쓰셔야죠. :)
원하시는 게 어떤 identifier 같은 거라면 enum을 쓰면 되지
원하시는 게 어떤 identifier 같은 거라면 enum을 쓰면 되지 않나요?
typedef enum { TypeA, TypeB, TypeC } StructType;
그리고 각 구조체는 StructType형 멤버를 갖고 있으면 되겠죠.
Re: type
코딩 할 때 어떤 타입이 올지 예상하지 못하는건가요?
// 어떤 프로그램인가요?
아예 extra부분을 이용해서 포인터 쓰듯이 직접 접근해서 하는 방법도 있겠네요
함수에서 모든 구조체의 어떤 부분을 접근 하는가요?
모든 필드를 접근하게되나요?
공통된 점이 없나요?
특정 필드만 접근 해도 되는 경우라면,
각각의 구조체에서 특정 필드의 위치를 동일하게 해서 접근 할 수도있겠네요
그럼 형 변환 시킬 필요도 없겠네요.
정확히 어떤 프로그램인지, 무슨일을 해야 하는지 알려주시고, 코드도 보여주신다면
성심성의껏(?) 답변해 드리도록 노력(?) 해 보겠습니다.
// 정확히 어떤 건지 몰라서....
// 어디가 끝인줄 모르고...
// 계속 상상만 해요...
https://nicesj.com
https://blog.nicesj.com
type.
음..foo에서 파라메터로 넘어온 type을 이용해서
동일한 type의 새로운 변수를 만들까 생각했는데..
이론적으로 안될꺼 같습니다.
암튼 여러 모로 생각이 짧았던 듯.
답변 주신 분께 죄성. 및 감사합니다.
Re: type을 저장할 수 있나여?
옛날에 저랑 비슷한고민을 하시는군요..ㅎㅎ 안되더군요..
타입을 건네줄수가 없으며 컴파일후에 변수가 생성될수 없습니다.
----------------------------------------------------------------------------
데이터의 성격에 따라서는 공용체로 해결하실 수 있는 문제일 수도 있을 거
데이터의 성격에 따라서는 공용체로 해결하실 수 있는 문제일 수도 있을 거 같네요..
Do you think that's the air you are breathing now?
댓글 달기