Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ANSI C编译错误:在‘;之前应为表达式’;代币_C_Compiler Errors_C89 - Fatal编程技术网

ANSI C编译错误:在‘;之前应为表达式’;代币

ANSI C编译错误:在‘;之前应为表达式’;代币,c,compiler-errors,c89,C,Compiler Errors,C89,当我试图编译我编写的一段代码时,仍然会遇到这个错误,文件中的位置完全没有帮助。这使用了GTK2.0 以下是我在编译时收到的信息: charles@draton-generico:~/Documents/C89$gcc-xc-ansi-gbahbah.c-obahbahpkg-config--cflags--libsgtk+-2.0 bah.c:在函数“main”中: bah.c:28:1:错误:在“,”标记之前应该有表达式 以下是我试图编译的代码: #include <stdio.h>

当我试图编译我编写的一段代码时,仍然会遇到这个错误,文件中的位置完全没有帮助。这使用了GTK2.0

以下是我在编译时收到的信息:

charles@draton-generico:~/Documents/C89$gcc-xc-ansi-gbahbah.c-obahbah
pkg-config--cflags--libsgtk+-2.0

bah.c:在函数“main”中:

bah.c:28:1:错误:在“,”标记之前应该有表达式

以下是我试图编译的代码:

#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>

#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1

void closure(void)
{
    gtk_main_quit();
    printf("gtk_main_quit() has been called.\n");
}

void main(int argc, char* argv[])
{
    gboolean check = gtk_init_check(&argc, &argv);
    if (check == FALSE)
    {
        printf("Failed to initialize toolkit.\nTerminating.\n");
        exit(EXIT_FAILURE);
    }
    else
    {
        printf("Initialized toolkit.\n");
        GtkWidget* main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title((GtkWindow*)main_window, "BLAH");
        gtk_window_set_default_size((GtkWindow*)main_window, 700, 700);
        g_signal_connect(main_window, "delete-event", closure, void);
        gtk_widget_show(main_window);
        printf("Window created, sleeping in gtk_main().\n");
        gtk_main();
    }       
    printf("Exiting.\n");
    exit(EXIT_SUCCESS);
}
#包括
#包括
#包括
#定义退出\u成功0
#定义退出故障1
空隙闭合(空隙)
{
gtk_main_quit();
printf(“gtk_main_quit()已被调用。\n”);
}
void main(int argc,char*argv[])
{
gboolean check=gtk_init_check(&argc,&argv);
如果(检查==FALSE)
{
printf(“未能初始化工具箱。\n正在初始化。\n”);
退出(退出失败);
}
其他的
{
printf(“初始化的工具包。\n”);
GtkWidget*主窗口=gtk窗口新窗口(gtk窗口顶层);
gtk_窗口设置标题((GtkWindow*)主窗口,“BLAH”);
gtk_窗口_设置_默认_大小((GtkWindow*)主窗口,700700);
g_信号连接(主窗口,“删除事件”,关闭,无效);
gtk_小部件_显示(主窗口);
printf(“创建的窗口,在gtk_main()中睡眠。\n”);
gtk_main();
}       
printf(“正在退出。\n”);
退出(退出成功);
}

请帮忙(

在第28行中使用
NULL
替换
void

g_signal_connect(main_window, "delete-event", closure, NULL);

使用第28行中的
NULL
替换
void

g_signal_connect(main_window, "delete-event", closure, NULL);

void
是一个
关键词
! 下面是对g\U信号连接()的描述:


那么,您只想不向这个函数传递任何内容?那么您应该使用
NULL

void
关键字
! 下面是对g\U信号连接()的描述:


那么,您只想不向这个函数传递任何内容吗?那么您应该使用
NULL

g\u信号连接(主窗口,“删除事件”,关闭,无效);该无效是否应该为NULL?第28行是什么?我想这就是问题所在。更改void=>NULL信号连接(主窗口,“删除事件”,关闭,无效);这个空应该是空的吗?第28行是什么?我想这就是问题所在。Change void=>null