我用了%lu、%ld都不行,用%lu是提示:warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 3 has type ‘uint64_t’ 请问应该用什么才能打印出uint64_t类型的数据?操作系统是32位的centOS。
by rick_cheung - Linux环境编程 - 2012-07-30 15:07:23 阅读(11682) 回复(4)
我使用的是MAC OS, 用XCODE, 当我在工程中加入一个汇编文件(asm),而且编译通过后,发现工程中的C文件的double强制类型转uint64_t(long long)类型全部挂掉,转出的值都为0x8?????????,请问有没有好的方法解决, 而且还使得与这个动态库无关的另一个动态库计算出来的结果全部错误.
本帖最后由 xqf 于 2014-10-13 20:22 编辑 :112:5: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 4 has type ‘uint64_t’ [-Wformat] :112:5: warning: ISO C90 does not support the ‘ll’ gnu_printf length modifier [-Wformat] :112:5: warning: format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 6 has type ‘uint64_t’ [-Wformat...
内核模块里可以用 需要在用户态也可以用 但把内核态对应模块的头文件全搞过来也还是显示 : error: expected specifier-qualifier-list before ‘uint64_t’ 何解?
代码里碰到了这样的一条语句: uint64_t ret = strtoul(src, &endptr, 10); 其中src是一个字符串,用来保存一个正整数,可见,如果src很长,可能发生uint64_t越界,有什么好的方法能判断这种越界吗?
本帖最后由 OLAY玉兰油 于 2010-04-23 14:15 编辑 最近蛋疼,移植了一个u-boot,发现printf()函数的一些问题 比如我要打印一个unsigned long long变量,也就是64位的变量,如果值是0x40000,按照0x%llx打印,实际打印出来的是0x4 0000 0000 0000,按照0x%x打印得到0x0 我的结论是: 数据在内存中存储方式导致printf输出错误 依据: 1.本来应该是0x40000的,实际在后面加了四个字节的0; 2.按照32为打印得到0,只是把低...
请教一个问题,我的一个程序中有printf,我在终端下后台执行该程序,printf仍然有输出,但是当我把它放在一个脚本中系统启动时自动执行,这个时候所有的printf就都看不到了,谁能告诉我为什么?或者先能告诉我怎么解决?(注:我的终端是串口,嵌入式环境下) 非常感谢各位大虾!! 我很急!
功 能: 产生格式化输出的函数 用 法: int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]type 规定数据输出方式,具体如下: 1.type 含义如下: d 有符号10进制整数 i 有符号10进制整数 ...