麦步社区-论坛

标题: 关于“警告:从整数没有初始化指针”的探讨 [打印本页]

作者: JASONMOORE    时间: 2017-4-7 13:59
标题: 关于“警告:从整数没有初始化指针”的探讨
在楼层步数表盘中,模拟的时候出现两个警告 warning: initialization makes pointer from integer without a cast [enabled by default]
不影响在电脑上的模拟,但在拷入手表的时候无法显示。详情如下
作者: JASONMOORE    时间: 2017-4-7 14:06
static void app_step_floor_time_change(enum SysEventType type, void *context)
{

        /*时间更改*/
        if (type == SysEventTypeTimeChange)
        {

                /*根据窗口ID获取窗口句柄*/
                P_Window p_window = app_window_stack_get_window_by_id(g_app_sport_window_id);       
                if (NULL != p_window)
                {
                        char text[12] = "";
                        struct date_time datetime;
                        app_service_get_datetime(&datetime);
                        P_Layer p_time_layer = app_window_get_layer_by_id(p_window, g_app_sport_hm_layer_id);
                        sprintf(text, "%02d:%02d", datetime.hour, datetime.min);
                        app_layer_set_text_text(p_time_layer, text);

                        app_window_update(p_window);
                }       

        }
}

作者: JASONMOORE    时间: 2017-4-7 14:07
void app_sport_timer_callback(date_time_t tick_time, uint32_t millis, void *context)
{

        /*根据窗口ID获取窗口句柄*/
        P_Window p_window = app_window_stack_get_window_by_id(g_app_sport_window_id);       
        if (NULL != p_window)
        {
                char text[12] = "";
                int8_t flag = 0;
               
                SportData data;
                maibu_get_sport_data(&data, 0);       
                P_Layer p_layer = app_window_get_layer_by_id(p_window, g_app_sport_step_layer_id);
                if (p_layer)
                {
                        //g_sport_data.step是运动数据结构体的一部分
                        if (g_sport_data.step != data.step)       
                        {
                                sprintf(text, "%d", data.step);
                                app_layer_set_text_text(p_layer, text);
                                g_sport_data.step = data.step;
                        }
                        flag++;
                }
作者: JASONMOORE    时间: 2017-4-7 14:08
感觉程序是没有错的,但在编译的时候出现了警告提示,以及下载到手表上也无法运行
arm-none-eabi-gcc -c -mthumb -mcpu=cortex-m0 watchface_step_floor.c -I .\SDK\
watchface_step_floor.c: In function 'app_step_floor_time_change':
watchface_step_floor.c:87:23: warning: initialization makes pointer from integer without a cast [enabled by default]
watchface_step_floor.c: In function 'app_sport_timer_callback':
watchface_step_floor.c:119:22: warning: initialization makes pointer from integer without a cast [enabled by default]
作者: JASONMOORE    时间: 2017-4-7 14:09
不知道是不是程序函数中的参数需要强制转换,求大神解答
作者: qs100371    时间: 2017-4-7 14:12
p_window=(P_Window)...
作者: JASONMOORE    时间: 2017-4-7 14:12
强行自顶
作者: JASONMOORE    时间: 2017-4-7 14:14
qs100371 发表于 2017-4-7 14:12
p_window=(P_Window)...

不是很明白,大哥可以具体点吗
作者: JASONMOORE    时间: 2017-4-7 14:19
正如上面那位大哥的答案
在P_Window p_window = app_window_stack_get_window_by_id(g_app_sport_window_id);  
p_window等于的数据类型转换为P_Window.
即        P_Window p_window = (P_Window)app_window_stack_get_window_by_id(g_app_sport_window_id);
作者: sure    时间: 2017-4-7 14:19
发错版块了
作者: 机器猫    时间: 2017-4-7 14:22
大神,不懂帮顶
作者: qs100371    时间: 2017-4-7 14:25
转了就没红字。安装不上和这没有关系
作者: niuniumm    时间: 2017-4-7 20:44
支持一下 楼主加油

作者: reerayxia    时间: 2017-4-10 08:00
JASONMOORE 发表于 2017-4-7 14:19
正如上面那位大哥的答案
在P_Window p_window = app_window_stack_get_window_by_id(g_app_sport_window_id ...

和这个无关,应该是打包的时候要关掉两个函数simulator_init();

int main(){
/*模拟器模拟显示时打开,打包时屏蔽*/
//simulator_init();

//主程序

/*模拟器模拟显示时打开,打包时屏蔽*/
//simulator_wait();
return 0;
}
作者: mark    时间: 2017-4-10 18:32
问题解决了吗?
作者: 细川玉木    时间: 2017-4-11 00:13
帮你顶顶
作者: JASONMOORE    时间: 2017-4-11 14:59
reerayxia 发表于 2017-4-10 08:00
和这个无关,应该是打包的时候要关掉两个函数simulator_init();

int main(){

有时会忘了这一步,还以为是程序错误了
作者: JASONMOORE    时间: 2017-4-11 15:01
mark 发表于 2017-4-10 18:32
问题解决了吗?

解决了。p_window的等号两边数据类型不一样,用强制转化数据类型就好了。




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