STM32F103的警告我觉得好多不能省略,我这里有一个为解决的类型转换问题

2019-07-14 19:24发布

....UserSTM32f10x_it.c(155): warning:  #767-D: conversion from pointer to smaller integer
                labviewtempexp=(uint16_t)(USART_ReceiveData);

我是32的初学者,并不知道这问题怎么解决,指针到小整型转换错误,并不知道怎么解决,这个warning会很影响程序

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
sdcxy
1楼-- · 2019-07-15 04:26
(uint16_t) 表示强制类型转换;
函数原型:
https://wenku.baidu.com/view/430bef9b1ed9ad51f11df23e.html
pku
2楼-- · 2019-07-15 05:40
 精彩回答 2  元偷偷看……
he07413
3楼-- · 2019-07-15 10:07
建议贴完整一点的程序,看提示貌似你的后者是个指针?指针变量是32位变量,不能转成16位,地址不就丢失了?但是可以把指向的内容强制转换 (uint16_t *)
而我还不够
4楼-- · 2019-07-15 10:46
he07413 发表于 2017-7-24 10:39
建议贴完整一点的程序,看提示貌似你的后者是个指针?指针变量是32位变量,不能转成16位,地址不就丢失了?但是可以把指向的内容强制转换 (uint16_t *)

恩恩,之前一段时间在做虚拟仪器,没来论坛,问题早就解决了,还是很感谢
而我还不够
5楼-- · 2019-07-15 12:06
pku 发表于 2017-7-21 17:40
代码好歹贴完整一点吧?两个变量是怎么定义的?

假设你是uint32_t转uint16_t,那肯定会有warning,具体会不会丢数据要看你的32位数的高16位是不是0.

恩恩,问题解决了了,很感谢,好几个月不来论坛了,恩恩 那个强制与否学一学就不会有这种问题了,也没必要非得做强制类型转换,我之前是指针和内容的调取没弄明白
而我还不够
6楼-- · 2019-07-15 15:03
我会告诉你真名 发表于 2017-7-21 10:46
USART_ReceiveData无论是函数还是数组都是代表的是指针,但是等号左边的是一个整形类型的变量,我猜你是想获取USART_ReceiveData中数据而不是它的地址,所以你这样做是不恰当的。如果USART_ReceiveData是函数请加上括号,如果USART_ReceiveData是数组请加上下标,希望能帮到你 ...

thank you

一周热门 更多>