PJLIB 라 이브 러 리 기본 프레임 워 크 - 데이터 구조의 순환 링크 사용
#include <stdio.h>
#include <pjlib.h>
#include <pj/types.h> // for pj_init.
#define THIS_FILE "main.c"
typedef struct MY_NODE
{
// This must be the first member declared in the struct!
PJ_DECL_LIST_MEMBER(struct MY_NODE);
int val;
} MY_NODE;
/*
*/
void list_test(void);
/*
*/
void list_print(pj_list_type* node);
int main(int argc, char** argv)
{
pj_status_t status;
// pjlib
status = pj_init();
if (status != PJ_SUCCESS)
{
char errmsg[PJ_ERR_MSG_SIZE];
pj_strerror(status, errmsg, sizeof(errmsg));
PJ_LOG(1,(THIS_FILE, "%s: %s [status=%d]", pj_init, errmsg, status));
return -1;
}
//
list_test();
// pjlib
pj_shutdown();
return 0;
}
/*
*/
void list_test(void)
{
int i;
MY_NODE list;
MY_NODE array[10];
//
pj_list_init(&list);
//
for (i=0; i<10; ++i)
{
array[i].val = i;
pj_list_insert_before(&list, &array[i]);
}
//
list_print(&list);
//
for (i=0; i<10; ++i)
{
pj_list_erase(&array[i]);
}
//
list_print(&list);
//
pj_assert(pj_list_empty(&list));
}
/*
*/
void list_print(pj_list_type* node)
{
int i;
MY_NODE *it;
MY_NODE *head;
head = it = (MY_NODE *)node;
if (it != NULL)
{
it = it->next;
for (i=0; it != head; ++i)
{
PJ_LOG(3, (THIS_FILE, "node[%d] = %d", i, it->val));
it = it->next;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.