加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 在这种情况下可以避免使用全局变量吗?

发布时间:2020-12-16 09:29:10 所属栏目:百科 来源:网络整理
导读:我在C中编写一个GTK应用程序(虽然这里的原理是广泛适用的),它包含一个GtkComboBox. GtkComboBox是另一个函数返回的更大结构的一部分,并打包到主窗口中. 我不知道如何通过从其回调函数设置全局变量来获取GtkComboBox中所选内容的值.或者在程序的后面还有某种
我在C中编写一个GTK应用程序(虽然这里的原理是广泛适用的),它包含一个GtkComboBox. GtkComboBox是另一个函数返回的更大结构的一部分,并打包到主窗口中.

我不知道如何通过从其回调函数设置全局变量来获取GtkComboBox中所选内容的值.或者在程序的后面还有某种方式引用GtkComboBox,在声明它的函数之外?

或者我不应该首先在函数内部(main()除外)声明它?

解决方法

如果在C中声明堆栈变量的函数已返回,则该变量不再存在.如果你需要GtkComboBox(或其他对象)来保持,你有几个选择:

>使用malloc为它分配空间并传递一个指针(当你不再需要它时必须释放它).
>使用全局变量
>不要使用回调并在外部函数中声明它并传递它.

我可能会使用malloc /传递指针方法,但如果不了解您的情况就无法确定.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读