2011-04-13 2 views
1

안녕하세요 저는 STL과 비슷한 C로 공통 데이터 구조 라이브러리를 작성하기 시작했습니다. 링크가 있습니다. http://code.google.com/p/cstl/C의 일반적인 데이터 구조 라이브러리

저는 데이터 구조의 기본 요소로 void*을 가지려고 많은 어려움을 겪었습니다. 두 요소

typedef struct __c_lib__object { 
    void* raw_data; 
    size_t size; 
} clib_object, *clib_object_ptr; 

이 접근

나 각 요소를 저장할 수있다 구조와 종료하지만, 저장 용기에서 요소를 다시 반환하는 동안, 메모리 할당을 많이 필요로한다.

아무에게도 이것을 검토하고 다른 접근법이 있으면 알려 주시기 바랍니다. 이중 밑줄로 시작하는

감사 Avinash

+4

http://codereview.stackexchange.com/에서 더 잘 할 수 있을지 궁금합니다. –

+1

STL과 유사한 C 라이브러리? 당신은 (http://apr.apache.org/) 또는 this (http://developer.gnome.org/glib/stable/)와 같은 뜻입니까? –

답변

1

이름은 '구현'에 예약되어 있으며 사용자 코드에서 피해야한다.

개인적으로 저는 포인터에 대한 typedef를 싫어합니다. 차라리 보다 clib_object *x;을 사용하고 싶습니다.

왜 개체의 크기를 기록해야합니까?

+0

그래서 개체를 반환 할 때 동일한 사본을 만들 수 있습니다. 크기를 알지 못한다면 사본을 만들 수 없습니다. – Avinash

+0

사실 저는 typedef의 사용법을 이해하지 못했습니다. 왜 C 프로그래밍에서 나쁜 것으로 간주됩니까? – Avinash

+0

@Avinash :'typedef'는 나쁘지 않습니다. 내가 싫어하는 것은'typedef struct something * something_ptr;', 대부분의 시간이다. 호출 코드가 구조체 내부의 어떤 것에도 액세스하지 않으면 구조체 세부 정보를 공용 머리글에 게시 할 필요가 없습니다. –

관련 문제