2

次のコードを使用すると、「警告: コントロールが非 void 関数の終わりに達しました」というメッセージが表示され続けます。

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);
}   

上記のコードをコンパイルすると、警告が表示されます (つまり、制御が非 void 関数の終わりに達します)。

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 に答える