U64=U LONG LONG的测试

#include <stdio.h>
#include <string.h>//memset
#include <stdlib.h>//free
#include <stddef.h>
#define uint8_t  unsigned char
#define uint16_t unsigned short
#define uint32_t unsigned int
#define uint64_t unsigned long long
 
int main()
{

uint64_t a=0XFFFFFFFF;
char p[16]={0};

printf("uint64_t a -10- ==%lu\r\n",a);
sprintf(p,"%lu",a);
printf("string: == %s\r\n",p);

}

 

上面 仅仅替换  uint64_t a=0XFFFFFFFFFFFFFFFF;
结果输出还是一样 也就是lu已经达到上限  也就是上面不行!!!!

 

 

怎么办??

  sprintf(p,"%llu",a);

#include <stdio.h>
#include <string.h>//memset
#include <stdlib.h>//free
#include <stddef.h>
#define uint8_t  unsigned char
#define uint16_t unsigned short
#define uint32_t unsigned int
#define uint64_t unsigned long long
 
int main()
{

uint64_t a=0XFFFFFFFFFFFFFFFF;
char p[16]={0};

printf("uint64_t a -10- ==%llu\r\n",a);
sprintf(p,"%llu",a);
printf("string: == %s\r\n",p);

}

 


修改  printf("string: == %16s\r\n",p); 此时效果一样
修改   printf("string: == %.16s\r\n",p);此时可以阶段字符串
uint64_t a -10- ==18446744073709551615

string: == 1844674407370955

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值