【发布时间】:2012-02-04 22:49:20
【问题描述】:
我是一个初学者,我已经用 C++ 编写了一个 10000 行的程序,该程序主要使用全局函数和 void 函数。
无论如何,我的程序没有 GUI,所以我正在使用 Clutter 为它制作一个。所以在混乱中,你使用信号处理函数来连接按钮点击、运动事件等。
信号处理函数只能接受一个用户数据参数。然而,GUI 的许多组件,数百个需要由不同的功能访问。所以我将我所有的 GUI 对象放在一个结构中,并从每个信号处理函数中传递它。
所以我现在的程序(控制台程序)打印了一些字母来做某事。如果你按下那个字母,启动某个功能。如果我不使用全局变量,我需要将其中一些变量作为参数传递。
如果我直接将我的代码插入到 GUI 中,那么信号处理函数将启动适当的函数,但只能传递一个用户数据参数,现在它已经被用作具有数百个 GUI 的结构成员。
对不起,如果这一切听起来很疯狂。我只是想重新编写我的代码以使用更好的做法,但是对于 10000 长的代码,以及我对某些事情缺乏了解,我感到非常不知所措。
我只是在寻找一些关于从哪里开始以及如何处理我在连接到 GUI 时遇到的问题的建议。
关于结构的问题。我有兴趣知道结构内是否有最大数量的元素。如果结构中有一个数组,该数组的访问时间会变慢吗?结构的内存处理方式是否存在差异。
谢谢。
【问题讨论】:
-
如果你真的有 10000 行这样写的代码,用适当的技术重新开始可能比修改它更容易
-
“GUI 的许多组件,数百个需要由不同的函数访问” - 听起来您应该尝试模块化代码。
-
你看过课程吗?它们应该可以帮助您更好地构建代码。这样你就可以让变量接近它们所属的东西。在不知道问题的情况下,这有点困难。我没有处理过混乱,但我猜你会传递一个指向特定类的指针。或者它自己的处理程序可能是特定类的方法。
-
另外,如果您想要普通的旧 GUI(按钮、列表、标签等),我不认为 Clutter 是最佳选择,Qt 或 GTK+ 应该更容易,而且它们更主流.