今天在使用sizeof判断待处理字符串的长度时出现了错误。为了发现错误在哪儿,对sizeof单独进行了验证。
对于sizeof的用法网上资源很多,其返回结果类型是size_t,它在头文件中typedef为unsigned int类型。
源代码
#include <reg52.h>
#include <stdio.h>
#include <intrins.h>
#include <string.h>
void mInitSTDIO( )
{
SCON = 0x50;
TMOD = 0x21;
TH1 = 0xfd; /* 11.0592MHz, 9600bps */
TR1 = 1;
ti = 1;
}
void main()
{
unsigned char string1[6];
mInitSTDIO();
printf("output
");
printf("%d",sizeof('c'));
printf("%d",sizeof(string1));
while(1);
}
利用串口助手接收printf函数输出数据,按理说输出数据依次为:
output
1
6
但结果是
s 想不明白到底哪里出错了
感谢回复,已改,上图就是加上 之后的结果
一周热门 更多>