麦步社区-论坛

标题: 表盘编写坑—数据类型 [打印本页]

作者: 包子馒头2    时间: 2016-5-12 09:43
标题: 表盘编写坑—数据类型
        刚从坑里爬出来,和大家分享一下。
        最近写表盘,为了省代码,很多变量都定义成char型的。一不小心,有的函数返回值是int型,但却用了char型变量去接收,结果就溢出了变成负数了。例如:

char g_window_id;
int main(void)
{
    P_Window p_window = init_window();

    g_window_id = app_window_stack_push(p_window);

    return 0;
}


这样给g_window_id赋值的话,当 app_window_stack_push(p_window) 返回值大于128时,g_window_id 就会变成负数。从而在使用     P_Window p_window = app_window_stack_get_window_by_id(g_window_id); 无法获取窗口指针,进而也就无法更新窗口界面了。


顺便说一句,跟重启有关的表盘问题,很大概率是全局变量出错了。


作者: 陶坤@麦步    时间: 2016-5-12 10:14
很好的经验分享
作者: 陶坤@麦步    时间: 2016-5-12 10:15
啥时候把表盘或者应用分享出来呀
作者: wgjtyu    时间: 2016-5-13 15:47
感谢楼主




欢迎光临 麦步社区-论坛 (http://bbs.maibu.cc/) Powered by Discuz! X3.2