C 更新函数之间的整数
我有一个GTK2的大代码,其中我在更新整数的值时遇到了问题(在本例中是trigan,它在主体中定义并回调给我这个问题的两个函数) 我打算按下RUN按钮,调用函数RUN,该函数开始实时显示数字。然后,当文本运行时,我将按下STOP按钮调用函数STOP,将trigan的值更新为1 下面是一段有问题的代码:C 更新函数之间的整数,c,gtk2,C,Gtk2,我有一个GTK2的大代码,其中我在更新整数的值时遇到了问题(在本例中是trigan,它在主体中定义并回调给我这个问题的两个函数) 我打算按下RUN按钮,调用函数RUN,该函数开始实时显示数字。然后,当文本运行时,我将按下STOP按钮调用函数STOP,将trigan的值更新为1 下面是一段有问题的代码: void STOP(GtkWidget *widget, GObject *context_object_stp) { GtkEntry *trigan = g_object_get_da
void STOP(GtkWidget *widget, GObject *context_object_stp)
{
GtkEntry *trigan = g_object_get_data (context_object_stp, "trigan");
trigan=1;
}
void RUN(GtkWidget *widget, GObject *context_object)
{
GtkEntry *buffer= g_object_get_data (context_object, "buffer");
GtkEntry *wins = g_object_get_data (context_object, "wins");
GtkEntry *trigan = g_object_get_data (context_object, "trigan");
GtkWidget iter;
GtkTextIter iterscrll;
GtkTextMark *mark;
mark = gtk_text_buffer_get_insert(buffer);
gtk_text_buffer_get_iter_at_mark(buffer, &iterscrll, mark);
gtk_text_buffer_get_iter_at_offset(buffer, &iter, 0);
trigan=0;
int i=0;
int k=0;
for (i=0; i<90; i=i+1)
{
while (trigan==1)
{
}
gchar * stuff = g_strdup_printf("%d"" [%d]\n", i, trigan);
/* Inserts buffer at position iter. */
gtk_text_buffer_insert(buffer, &iter, stuff, -1);
g_free(stuff);
/* Forcing. */
while (gtk_events_pending())
gtk_main_iteration();
/* Scrolls text_view the minimum distance such that mark is contained within the visible area of the widget. */
gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(wins), mark);
for (k=0; k<50000000; k=k+1)
{
k++;
}
k=0;
}
}
应该“停止”函数运行,但它没有
救命啊 是的,您的假设是正确的,但请看一下您的代码摘录:
triga=0;
int i=0;
int k=0;
for (i=0; i<90; i=i+1)
{
while (triga==1)
{
}
triga=0;
int i=0;
int k=0;
对于(i=0;i)我的逻辑是,如果trigan=1,那么(trigan==1)应该“停止”函数运行如果你的代码中真的存在这样一个循环,我肯定会的。trigan
vstriga
。经验教训:使用合理的变量名。我犯了一个错误,转录主代码时变量名始终是trigan。我编辑了这篇文章。谢谢。我犯了一个错误,转录了主代码,所有代码中的变量名我是trigan。我已经编辑了这篇文章。谢谢。
triga=0;
int i=0;
int k=0;
for (i=0; i<90; i=i+1)
{
while (triga==1)
{
}