麦步社区-论坛

标题: 编译器Bug? [打印本页]

作者: zt-x    时间: 2016-12-7 11:20
标题: 编译器Bug?
本帖最后由 zt-x 于 2016-12-7 11:27 编辑

最近在编写一个简单的程序,然后遇到了一个奇怪的问题:在模拟器上可以跑通过,但是放在手表上就会出先重启的问题
  1. /*
  2. * =====================================================================================
  3. *     本程序根据 gliu (), gliu@maibu.cc 的 demo_text.c 修改而来特别感谢
  4. *     Modulename:
  5. *       Filename:  PoetryTang.c
  6. *
  7. *    Description:  
  8. *    Corporation:
  9. *
  10. *         Author:  Zoologist
  11. *        Created:  2016年12月1日
  12. *
  13. * =====================================================================================
  14. *
  15. * =====================================================================================
  16. *
  17. *   MODIFICATION HISTORY :
  18. *   
  19. *                     DATE :  
  20. *                     DESC :
  21. * =====================================================================================
  22. */        
  23. #include <stdlib.h>
  24. #include <stdio.h>
  25. #include <string.h>

  26. #include "maibu_sdk.h"
  27. #include "maibu_res.h"


  28. //窗口显示的内容


  29.         
  30. P_Window p_window;

  31. void setup()
  32. {
  33.   //创建窗口
  34.   p_window  = app_window_create();
  35.         if (NULL == p_window)
  36.         {
  37.                 return ;
  38.         }

  39.         /*创建文本图层框架范围*/
  40.         GRect frame = {{0, 45}, {40, 128}};
  41.         unsigned char buf[]=        "麦步欢迎您!";

  42.         /*生成文本结构体, 依次为文本内容、文本显示框架、对齐方式、字体字号*/
  43.         LayerText text = {buf, frame, GAlignCenter, U_GBK_SIMSUNBD_16};

  44.         /*创建文本图层*/
  45.         P_Layer layer = app_layer_create_text(&text);

  46.         /*添加文本图层到窗口中*/
  47.         app_window_add_layer(p_window, layer);

  48.         app_window_stack_push(p_window);

  49. return ;
  50. }
  51.   
  52.   
  53. int main()
  54. {
  55.   
  56. //simulator_init();
  57.         setup();
  58.         //while (1==1)
  59.         //{
  60.         //        loop();
  61.         //}
  62.         
  63. //simulator_wait();

  64.         return 0;

  65. }
复制代码

最后发现,出现问题的代码在
P_Window p_window; 这里
如果写成下面这个样子就没问题

void setup(){  
//创建窗口  
P_Window  p_window  = app_window_create();

我想问一下这个是不是编译器的问题?
谢谢!



作者: mark    时间: 2016-12-7 14:53
结构体指针变量暂时不要定义为全局的。
作者: zt-x    时间: 2016-12-7 14:54
mark 发表于 2016-12-7 14:53
结构体指针变量暂时不要定义为全局的。

这是编译器的 Limitation?
作者: mark    时间: 2017-1-23 11:05
是OS对于全局的结构体指针还没有做处理。
作者: wx_AAlzVp9L    时间: 2017-1-26 21:55
我看不懂 但是顶一个!




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