python代码

for b in range(4):
    for c in range(4):
        print myfunc(b/0x100000000, c*8)

c代码
unsigned int b,c;
for(b=0;b<4;b++)
    for(c=0;c<4; c++)
    printf("%L\n", b/0x100000000);
    printf("%L\n" , myfunc(b/0x100000000, c*8));

我有个错误说:
错误:c代码的printf语句中的整数常量对于“long”类型太大。
“myfunc”函数返回一个long。
这可以通过定义不同类型的“b”来解决。我试图将“b”定义为“long”和“unsigned long”,但没有帮助。
有什么线索吗?
我的错…这是问题的简短版本
unsigned int b;
b = 1;
printf("%L", b/0x100000000L);

我收到错误和警告:
错误:整数常量对于“long”类型太大
警告:转换在格式末尾缺少类型
警告:格式参数太多

最佳答案

您的C代码需要大括号来创建Python通过缩进实现的作用域,因此它应该如下所示:

unsigned int b,c;
for(b=0;b<4;b++)
{
    for(c=0;c<4; c++)
    {
      printf("%L\n", b/0x100000000);
      printf("%L\n" , myfunc(b/0x100000000, c*8));
    }
}

09-27 08:06