sprintf不能传递char的参数吗? 15

前两个都是错的,第三个是对的,注意看右边的调试情况,谁能告诉我怎么回事,郁闷死了,在这纠结了好久才找到问题也不知道为什么... 前两个都是错的,第三个是对的,注意看右边的调试情况,谁能告诉我怎么回事,郁闷死了,在这纠结了好久才找到问题 也不知道为什么 展开
 我来答
cdyzxy
2013-08-13 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3705万
展开全部
31488变成十六进制为7B00
123变成十六进制为007B
由此可判断你的程序采用了大端模式编译(或使用了大端模式的库函数),数据先保存高位字节再保存低位字节。
%u就是输出unsigned int的数据,你可以写:(int)123或(unsigned int)123
你的系统默认123是short int型数据(占用一个字节),调用sprintf时堆栈栈顶之上的字节又恰好是0,才会输出31488,否则还不知道要输出什么数据呢。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sunchy12345678
2013-08-13 · TA获得超过665个赞
知道小有建树答主
回答量:443
采纳率:100%
帮助的人:344万
展开全部
这种问题的最好解决方式就是不去搭理它,而不是试图解释它。
标准规定,这种错误的调用(需要一个unsigned int却传入int,仅限可变参数)是未定义的。换句话说会发生什么什么是不可预测的。

顺便恭喜LZ,这台机器估计可以抓出这方面的不少问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
路偲08U
2013-08-12
知道答主
回答量:16
采纳率:0%
帮助的人:12.7万
展开全部
你看看是不是你强制转化的时候错了啊无符号形的都带引号的,不知道是不是这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
woshiaokeman
2013-08-12
知道答主
回答量:34
采纳率:0%
帮助的人:20.6万
展开全部
发了个函数给你,来个好评啊!
u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出。
输出一个10进制数
好评啊!亲!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式