sprintf不能传递char的参数吗? 15
前两个都是错的,第三个是对的,注意看右边的调试情况,谁能告诉我怎么回事,郁闷死了,在这纠结了好久才找到问题也不知道为什么...
前两个都是错的,第三个是对的,注意看右边的调试情况,谁能告诉我怎么回事,郁闷死了,在这纠结了好久才找到问题 也不知道为什么
展开
展开全部
31488变成十六进制为7B00
123变成十六进制为007B
由此可判断你的程序采用了大端模式编译(或使用了大端模式的库函数),数据先保存高位字节再保存低位字节。
%u就是输出unsigned int的数据,你可以写:(int)123或(unsigned int)123
你的系统默认123是short int型数据(占用一个字节),调用sprintf时堆栈栈顶之上的字节又恰好是0,才会输出31488,否则还不知道要输出什么数据呢。
123变成十六进制为007B
由此可判断你的程序采用了大端模式编译(或使用了大端模式的库函数),数据先保存高位字节再保存低位字节。
%u就是输出unsigned int的数据,你可以写:(int)123或(unsigned int)123
你的系统默认123是short int型数据(占用一个字节),调用sprintf时堆栈栈顶之上的字节又恰好是0,才会输出31488,否则还不知道要输出什么数据呢。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种问题的最好解决方式就是不去搭理它,而不是试图解释它。
标准规定,这种错误的调用(需要一个unsigned int却传入int,仅限可变参数)是未定义的。换句话说会发生什么什么是不可预测的。
顺便恭喜LZ,这台机器估计可以抓出这方面的不少问题。
标准规定,这种错误的调用(需要一个unsigned int却传入int,仅限可变参数)是未定义的。换句话说会发生什么什么是不可预测的。
顺便恭喜LZ,这台机器估计可以抓出这方面的不少问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你看看是不是你强制转化的时候错了啊无符号形的都带引号的,不知道是不是这个问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
发了个函数给你,来个好评啊!
u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出。
输出一个10进制数
好评啊!亲!
u格式符,用来输出unsigned型数据,即无符号数,以十进制形式输出。
输出一个10进制数
好评啊!亲!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询