程序编写为C,GUI由GTK +创建。算法没有问题或什么,我只是不确定是否有一件事。
我打算包装一些GTK函数,所以我可以保存很多源代码行。例如:
GtkWidget *gtkwrap_label_markup_new(const gchar *txt)
{
GtkWidget *label;
g_assert(txt);
label = gtk_label_new(NULL);
gtk_label_set_markup(GTK_LABEL(label), txt);
return label;
}
我使用pango很多次修改的文本,这个包装函数保存了很多行代码。也许它还不错,但如果其他一些程序员有一天会阅读我的代码怎么办,会有什么反应呢? “.... gtkwrap_label_markup_new?什么?!”
我只是想知道,如果包含这些功能在标准范围内。我不想看起来像个白痴,我也不想学习一些坏习惯。 ;)
答案 0 :(得分:6)
引入函数以避免代码重复没有任何问题。事实上,我认为这恰恰相反,引入抽象可以帮助您更快地开发代码,并降低修复问题或更改设计的成本。
答案 1 :(得分:1)
如果您有疑问,请查看GTK代码。例如,对于gtk_label_set_markup,您会看到处理str变量为NULL的情况。因此,断言检查可能适合您的申请,但我认为这有点矫枉过正。如果您想收到警告,您可能希望g_return_val_if_fail(str != NULL, NULL)
返回NULL并在txt
为NULL时打印警告。
但是如果你真的想保存一堆代码,可以使用Glade来设计你的UI,而不是用普通的C来构建它。