查看单个帖子
旧 2019-11-26, 16:43   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
默认 Why char is stored as 2 bytes in Matlab S-Function

I would like to pass an uint8 array to my S-Function as a parameter:



inParam = char(uint8(1:7))


In the S-Function I did the followings



UINT8_T *inParam = (UINT8_T *)mxGetPr(ssGetSFcnParam(S, PARAM_IN_PORT_NR)); //;


but I saw that actually the array elements are stored as 2 bytes.



UINT16_T *inPorts = (UINT16_T *)mxGetPr(ssGetSFcnParam(S, PARAM_IN_PORT_NR)); //
// I can loop through the data
// This is only a snippet
*(inPorts++);


Why is that? Is this happening in all the Matlab versions?





More answer...
poster 当前离线   回复时引用此帖