打印
[STM32F1]

STM32中 字符串是连续存储的吗

[复制链接]
882|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小沐127|  楼主 | 2016-8-26 16:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void USART1_Puts(char * str)
{
    while(*str)
    {
        USART_SendData(USART1, *str++);
        while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);
    }
}

我觉的这种写法就是让单片机为字符串随机分配连续内存空间,,是吗?
沙发
80x86abc| | 2016-8-26 17:20 | 只看该作者
SB

使用特权

评论回复
板凳
aozima| | 2016-8-26 18:37 | 只看该作者
同个字符串必然是连续存储的,不然怎么叫 串

使用特权

评论回复
地板
小沐127|  楼主 | 2016-8-26 19:03 | 只看该作者

看了你发的那几帖子,也就是个中低级水平问题,我还以为你多厉害。。。。搞笑

使用特权

评论回复
5
小沐127|  楼主 | 2016-8-26 19:06 | 只看该作者
aozima 发表于 2016-8-26 18:37
同个字符串必然是连续存储的,不然怎么叫 串

哦,3Q

使用特权

评论回复
6
低八度的声线| | 2016-8-27 10:12 | 只看该作者
*str++,这样地址是连续增加的,所以字符串也是连续的。

使用特权

评论回复
7
dirtwillfly| | 2016-8-27 14:56 | 只看该作者
连续的,所以才能用*str++这种地址自增操作

使用特权

评论回复
8
HARRY007| | 2016-8-27 15:53 | 只看该作者
上面那句话并不是单片机为发送符串分配连续内存,它是从某个传入的地址开始取数据通过串口发送出去。把字符串的首地址传进去了就把字符串发出去了,字符串的结束符是'\0',ASCII码对应的就是数值0,所以再while中判别字符串发送完了没……

使用特权

评论回复
9
lwsn| | 2016-8-27 19:09 | 只看该作者
*str++,就是控制地址连续增加的

使用特权

评论回复
10
拉克丝| | 2016-8-27 20:42 | 只看该作者
*str++控制地址自增,让存进来的字符成串

使用特权

评论回复
11
lt1231| | 2016-8-28 18:15 | 只看该作者
小沐127 发表于 2016-8-26 19:03
看了你发的那几帖子,也就是个中低级水平问题,我还以为你多厉害。。。。搞笑 ...

就是,要尊重别人的提问。只有不会才提问呢,不懂就要问。

使用特权

评论回复
12
szjlj168| | 2016-8-28 23:42 | 只看该作者
看来楼上也是来打酱油的。。。。。。。。。。。。。。。。

使用特权

评论回复
13
Thorald| | 2016-8-31 21:17 | 只看该作者
是连续的哦

使用特权

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

本版积分规则

12

主题

48

帖子

0

粉丝