简单的glib测试(三)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <locale.h>
#include <glib.h>
//#include <glib-2.0/glib.h>
static gint repeats = 2;
static gint max_size = 8;
static gboolean verbose = FALSE;
static gboolean beep = FALSE;
static gboolean grand = FALSE;
static gchar *string;
/*
glib.h头文件中定义
typedef struct {
const gchar *long_name; // 完整命令 如:--name
gchar short_name; // 简写命令 如:-n
gint flags; // GOptionFlags枚举的值
GOptionArg arg; // GOptionArg枚举的值
gpointer arg_data; // 解析出来的数据,所要存储的位置
const gchar *description; // 参数描述,--help可以查看到
const gchar *arg_description;
} GOptionEntry;
*/
static GOptionEntry entries[] =
{
{ "repeats", 'r', 0, G_OPTION_ARG_INT, &repeats, "Average over N repetitions", "N" },
{ "max-size", 'm', 0, G_OPTION_ARG_INT, &max_size, "Test up to 2^M items", "M" },
{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, "Be verbose", NULL },
{ "beep", 'b', 0, G_OPTION_ARG_NONE, &beep, "Beep when done", NULL },
{ "rand", 0, 0, G_OPTION_ARG_NONE, &grand, "Randomize the data", NULL },
{ "str_test", 's', 0, G_OPTION_ARG_STRING, &string, "test the stirng", NULL},
{ NULL }
};
int
main (int argc, char *argv[])
{
GError *error = NULL;
GOptionContext *context;
context = g_option_context_new ("- test tree model performance");
g_option_context_add_main_entries (context, entries, NULL);
// g_option_context_add_group (context, gtk_get_option_group (TRUE));
if (!g_option_context_parse (context, &argc, &argv, &error))
{
g_print ("option parsing failed: %s/n", error->message);
exit (1);
}
/* ... */
}