당연히 그 Linked List다
1.
typedef struct Node{
int data;
Node* next;
Node* prev;
} LinkedListNode;
뭐 이렇게 했던게 맨처음일거임
그리고 C++을 배우고
2.
template<typename T>
struct LinkedListNode{
T data;
LinkedListNode* next;
LinkedListNode* prev;
//많은 생성자와 Helper메서드
//그리고 LinkedList 본체 클래스
};
근데 저렇게 짜면 컴파일 시간이 좀 걸림
그래서 C/C++혼합으로
3.
struct LinkedListNode{
LinkedListNode* next;
LinkedListNode* prev;
char data[0];
//많은 생성자와 Helper메서드
//그리고 LinkedList 본체 클래스
};
그리고 ListNode 관련은 .c파일
LinkedList 클래스는 c/c++ 스까
그리고 리눅스 커널
4.
struct LinkedListNode{
LinkedListNode* next;
LinkedListNode* prev;
}
data는 없음
커널 에서는 저걸 상속과 비슷한 형태로 쓰고있다...
보면 도움이 되더라
템플릿을 안 쓰다니 개그켬이네
3.
https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Zero-Length.html
4.
https://stackoverflow.com/questions/22218604/extending-a-struct-in-c