我怎么打印很长的?这不应该工作吗?李%

asm*_*smw 4 c printf

我阅读了文档,它说很长的是%li但打印出来的时候是-2147024891.是什么赋予了?

And*_*Dog 12

你甚至没有提供你想要打印的数字,但我想你已经无意中看到了签名和无签名打印之间的区别.

数字使用"%lu",unsigned long数字使用"%ld"或"%li" signed long.

MSDN对printf的符良好的文档.对于64位值(long long例如),您应该使用"inttypes.h"中的宏.


Han*_*ant 8

您正在尝试打印HRESULT,即"拒绝访问"的错误代码.最好用十六进制格式化,至少对于程序员来说很容易识别.

printf("0x%08lx", hr);
Run Code Online (Sandbox Code Playgroud)

现在,您将立即识别设施代码7(Windows API)和错误代码5(访问被拒绝).