본문 바로가기

g_hash_table3

3-2. GLib의 자료구조들 (해쉬 테이블 - GHashTable) 본 포스트를 이해하려면 해쉬 테이블에 대한 사전 지식이 필요하다. 만약 해쉬 테이블이 무엇인지 모른다면 먼저 해당 내용들에 대해서 구글링을 해 보자. 해쉬 테이블은 데이터를 Key-Value 쌍으로 관리하기 위한 자료구조이다. 하나의 Key에 하나의 Value만 저장될 수 있다. 아래는 GHashTable로 데이터 삽입, 삭제, 조회, 순회를 하는 간단한 예제이다. #include #include #include // typedef void* gpointer; // HashMap을 순회하면서 호출되는 콜백함수 static void print_film(gpointer key, gpointer value, gpointer user_data) { char *film = (char*)key; char *coun.. 2021. 12. 18.
3-1. GLib의 자료구조들 (링크드 리스트 - GList) 본 포스트를 이해하려면 링크드 리스트에 대한 사전 지식이 필요하다. 만약 링크드 리스트가 무엇인지 모른다면 먼저 해당 내용들에 대해서 구글링을 해 보자. 링크드 리스트는 자료구조책 초반부에 나오면서도 프로그래밍을 하다보면 정말 많이 사용하게 되는 자료구조이다. 개인적으로는 아마 GLib의 모든 자료구조 중에 가장 많이 사용하는 자료구조이다. 백문이불여일견으로 우선 GList로 간단히 데이터 삽입, 삭제, 순회를 하는 예제 코드를 보고, GList를 어떻게 사용하면 되는지 알아보자. #include #include // typedef void* gpointer; // 리스트를 순회하면서 호출되는 콜백함수 static void print_film(gpointer data, gpointer user_data).. 2021. 12. 17.
2. C언어의 STL, GLib ※ glibc와 혼동하지 말자. glibc(gnu c library)는 gnu에서 만든 C 표준 라이브러리이다. 반면 GLib는 gnome 재단에서 만든 서드파티 라이브러리이다. GLib는 C언어 프로그램 개발을 돕는 라이브러리이다. C언어가 개발된지 어느덧 50년이 다 되어가는 만큼 지원하는 기능이 제한적이다. 대표적으로 C언어는 표준 자료구조, 클래스, 추상화된 파일 입출력 라이브러리 등 현대 언어에서 지원하는 기능들이 빠져있다. GLib는 현대 언어들이 제공하는 고수준 기능들을 C언어에서도 사용할 수 있도록 돕는 라이브러리이다. 2.1 GLib란? 공식 GLib 문서에서는 GLib에 대해 아래와 같이 설명하고 있다. GLib is a general-purpose, portable utility li.. 2021. 12. 17.