小编use*_*200的帖子

大文件支持无法在Android上运行

我正在尝试为android 构建md5deep(http://md5deep.sourceforge.net/),但是使用默认的构建设置,sizeof(off_t) == 8失败的断言,指示(AFAIK)LFS未启用.我已经尝试通过添加-D_FILE_OFFSET_BITS=64gcc和g ++标志来启用,但它仍然没有做到这一点.添加行来打印_FILE_OFFSET_BITS和sizeof(off_t)的值表明前者确实是64,但后者是4而不是8.

有什么想法吗?

android gcc g++ large-file-support android-ndk

5
推荐指数
0
解决办法
354
查看次数

如何准确地对64位整数进行乘法和除法?

我有一个C函数:

int64_t fn(int64_t a, int32_t b, int32_t c, int32_t d)
{
    /* should return (a * b * c)/d */   
}
Run Code Online (Sandbox Code Playgroud)

a可能接近INT64_MAX,但最终结果不会溢出,例如,如果b = 1,c = d = 40.但是,我无法弄清楚如何计算这个以便我永远不会丢失数据舍入(通过先进行除法)或中间结果溢出.

如果我可以访问足够大的数据类型以适应a,b和c的整个产品,我只会在该类型中进行数学计算然后截断,但有没有一些方法可以在没有大整数的情况下执行此操作?

c math biginteger

2
推荐指数
1
解决办法
1098
查看次数

标签 统计

android ×1

android-ndk ×1

biginteger ×1

c ×1

g++ ×1

gcc ×1

large-file-support ×1

math ×1