关于u8和u16数据类型的疑问

2019-08-12 17:31发布

FLASH模拟EEPROM的实验中,我看到了这样的代码
//定u8的字符串数组 获取数组的长度 这里SIZE为17
const u8 TEXT_Buffer[]={"STM32 FLASH TEST"};
#define SIZE sizeof(TEXT_Buffer)        

//向指定地址写数据
STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)TEXT_Buffer,SIZE); 

以上函数中,把u8类型的指针转换成u16的了,那么SIZE是不是也要对应/2呢?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
Rocks
1楼-- · 2019-08-12 20:42
這要取決於 STMFLASH_Write 這函數內是以什麼類型在操作

官方版本的 類似的函數 有多一個參數要傳遞
這參數會表明是寫入
uint_8t
uint_16t
uint_32t
uint_64t
哪一種資料長度
only
2楼-- · 2019-08-13 00:42
回复【2楼】Rocks:
---------------------------------
在文档里有说明是u16的长度,即半字的个数
Rocks
3楼-- · 2019-08-13 05:09
那確實該除以二

只是直接除二會有問題 還需要做點處理
譬如你用u8 字串 有11個字的時候
sizeof 直接除二 會剩5
only
4楼-- · 2019-08-13 06:28
 精彩回答 2  元偷偷看……
15767909146
5楼-- · 2019-08-13 10:59
only 发表于 2015-10-8 13:23
回复【4楼】Rocks:
---------------------------------
恩,多谢

同志  你解决这个问题了吗?是不是官方的错了?

一周热门 更多>