c语言编程之sglib库的简单使用
来源:互联网 发布:淘宝店怎么能提高销量 编辑:程序博客网 时间:2024/05/16 05:58
说实话自从大学毕业后已经很久没有用c语言写过程序了,一般都是使用c++,c++的stl和boost等,这些代码库大大简化了我们的编程复杂度。由于最近某种原因在次开始用c写程序。我是个比较懒的人,比较喜欢使用别人的第三方库,好不容易找到一个叫sglib的开源库,当然要使用一下啦。不多说。
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include "sglib.h"
typedef struct _ip_mask_map
{
int first;
int second;
struct _ip_mask_map* next;
}ip_mask_map,*pip_mask_map;
int ipcomp(ip_mask_map* elem1,ip_mask_map* elem2)
{
if ((elem1->first == elem2->first) &&
(elem1->second == elem2->second))
{
return 0;
}
else
{
return 1;
}
}
int main(int argc, char* argv[])
{
ip_mask_map *elem,*head=NULL,*_member;
elem = (pip_mask_map)malloc(sizeof(ip_mask_map));
elem->first = 1;
elem->second = 100;
elem->next = NULL;
//添加elem到链表,如果指向链表的指针head为空时,将新元素elem赋值给head
SGLIB_LIST_CONCAT(ip_mask_map,head,elem,next);
elem = (pip_mask_map)malloc(sizeof(ip_mask_map));
elem->first = 2;
elem->second = 200;
elem->next = NULL;
SGLIB_LIST_CONCAT(ip_mask_map,head,elem,next);
elem = (pip_mask_map)malloc(sizeof(ip_mask_map));
elem->first = 2;
elem->second = 200;
elem->next = NULL;
//如果成员已经在链表存在的话,_member返回指向那个成员的指针,否者返回NULL
SGLIB_LIST_ADD_IF_NOT_MEMBER(ip_mask_map,head,elem,ipcomp,next,_member);
if (_member != NULL)
free(elem);
//遍历并删除动态分配的内存
for (elem = head; elem != NULL;)
{
pip_mask_map tmp = elem;
printf("%d,%d\n",elem->first,elem->second);
elem = elem->next;
free(tmp);
}
return 0;
}
- c语言编程之sglib库的简单使用
- C语言的简单编程
- linux下C语言编程2-makfile的简单使用
- C语言简单编程
- C语言简单的网络编程
- 做简单的c语言编程
- c语言编程基础------0.5.1 c应用程序之最简单的程序---Hello world!
- socket编程之C语言一个简单监听程序
- C语言之简单的冒泡
- C语言 SDK编程之数据库编程--ODBC数据源 API的使用
- C语言 不定参数的简单使用
- C语言getopt函数的简单使用
- malloc的简单使用-c语言程序
- C语言指针变量的简单使用
- 开始c语言的编程之路
- 简单C语言编程规范
- 【C语言】编程工具--GNU的使用
- C语言简单使用动态库总结
- IPv6概述
- 中国时区的Id是Asia/Shanghai
- sed
- DDDDD
- JAVA串口读写小结
- c语言编程之sglib库的简单使用
- Android View measure过程
- Simple Introduction to Dirichlet Process
- 中国式成功
- PHP 语言结构(Language constructs)和函数的区别
- 手机叫车软件生存样本调查:部分公司月投入百万推广
- C++ Vector用法深入剖析
- JavaScript中接收php变量-菜鸟学Ajax知识点
- 类中的静态变量和函数