打印
[STM32F1]

强制转换

[复制链接]
506|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuhany|  楼主 | 2021-3-3 23:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
往内存某地址比如0X12FF7C写数据0X100

int*p = (int*)0x12ff7c;
*p=0x100;

如果写成
int*p;
p=0x12ff7c;
*p=0x100;

即p= (int*)0x12ff7c;这句的强制转换不强制转换了会有什么结果呢?

使用特权

评论回复
沙发
gongche| | 2021-3-3 23:20 | 只看该作者
避免警告或错误,取决于具体的编译器

使用特权

评论回复
板凳
songqian17| | 2021-3-3 23:23 | 只看该作者
这个是取决于编译器的,一般情况下编译器都默认为int型

使用特权

评论回复
地板
huwr| | 2021-3-3 23:27 | 只看该作者
你不转换也没关系,编译器会帮你强制转换。

使用特权

评论回复
5
happy_10| | 2021-3-3 23:30 | 只看该作者
最好进行强制转换,是个好习惯。

使用特权

评论回复
6
bqyj| | 2021-3-3 23:32 | 只看该作者
强制转换是为了明确的通知编译器, 以免编译器迷糊。

使用特权

评论回复
7
wenfen| | 2021-3-3 23:34 | 只看该作者
用强制转换明确的通知编译器:这不是一个笔误!!!!

使用特权

评论回复
8
zhuhuis| | 2021-3-3 23:36 | 只看该作者

int*p;
p=0x12ff7c;
*p=0x100;
我认为p=0x12ff7c;这一句编译都通不过啊,在语法上就是错误的

使用特权

评论回复
9
tian111| | 2021-3-3 23:38 | 只看该作者
将int类型的数据赋值给指针类型的数据,在语法上是错误的

使用特权

评论回复
10
zwll| | 2021-3-3 23:40 | 只看该作者
没有什么问题的

使用特权

评论回复
11
chuxh| | 2021-3-3 23:42 | 只看该作者
优点   第一  告诉编译器你想要的数据类型   

使用特权

评论回复
12
juventus9554| | 2021-3-3 23:44 | 只看该作者
程序能够正常执行的。

使用特权

评论回复
13
stly| | 2021-3-3 23:47 | 只看该作者
节省时间   提高程序执行速率

使用特权

评论回复
14
llljh| | 2021-3-3 23:48 | 只看该作者
定义的地址都是一样的。

使用特权

评论回复
15
pengf| | 2021-3-3 23:50 | 只看该作者
这个就是强制转换的类型而已

使用特权

评论回复
16
renyaq| | 2021-3-3 23:51 | 只看该作者

编译器会帮你强制转换

使用特权

评论回复
17
chenho| | 2021-3-3 23:53 | 只看该作者
好的,我明天去单位试一下,多谢各位大侠了哈

使用特权

评论回复
18
晓伍| | 2021-4-2 13:27 | 只看该作者
指针很容易出错误的

使用特权

评论回复
19
磨砂| | 2021-4-2 13:27 | 只看该作者
直接指向地址了

使用特权

评论回复
20
木木guainv| | 2021-4-2 13:30 | 只看该作者
楼主得出什么结果了吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

879

主题

10435

帖子

4

粉丝