2

我不断收到“警告:控制到达非无效函数的结尾”的代码:

static show_message(GtkMessageType type, const char* text, const char* details)
{
    GtkWidget *dialog;

    g_assert(text);

    dialog = gtk_message_dialog_new(NULL, DIALOG_FLAGS, type, GTK_BUTTONS_CLOSE,
        "%s", text);
    if (details) {
        gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "%s", details);
    }
    gtk_dialog_run(GTK_DIALOG (dialog));
    gtk_widget_destroy(dialog);
}   

当我编译上面的代码时,我得到警告(即控制到达非无效函数的结尾):

gui.c: warning: return type defaults to 'int'
gui.c: In function 'show_message':
gui.c: warning: control reaches end of non-void function

我怎样才能摆脱这个警告?

谢谢。

4

1 回答 1

6

show_message()需要将函数的返回值指定为void,否则假定为int。像这样:

static void show_message(GtkMessageType type, const char* text, const char* details)
{
    /* ... */
}
于 2012-04-18T19:58:02.293 回答