找到493个回复 (用户: 无名啊)
@老虎会游泳,按照标准,可能根本不会发生解引用指向float值的long指针,因为可能已经被优化掉了。。也就没有你后面说的浮点定义如何如何……
@老虎会游泳,如果按 cppreference 所说,应该是未定义行为。
转换指针类型没问题,只要不访问就行。(但不访问,转了也没用。可认为不能转)
比如:
float a = 1.0; long * b = (long *)&a; *b = 1; return a;
按照标准,编译器可认为,
a
未被修改(因为*b
不是a
的兼容类型,所以修改*b
不应该污染a
),所以优化掉b
,直接返回1.0
。。。
@老虎会游泳,你看下 cppreference - 指针 - 注解 说的:
尽管任何指向对象的指针能被转型成指向其他类型对象的指针,解引用指向类型异于对象声明类型的指针几乎总是未定义行为。细节见严格别名使用。
@老虎会游泳,我比较怕的是未定义行为导致的结果错误,所以想弄清楚别名规则。
看到知乎那篇文章中的第三个例子,我又觉得
restrict
有助于减少性能损耗(修改char *
导致编译器认为this
可能被修改,进而没法重复利用缓存好的this
),所以顺便想弄清楚restrict
@老虎会游泳,回复好多啊,我刚看到第一条:
此外,Q_rsqrt()函数中没有未定义行为
未定义行为是:
* ( long * ) &y
某左值表达式,是某个对象的[cvr修饰][有/无符号]兼容类型/含有第一项的结构体或联合体/字符类型,才能
赋值访问,否则为未定义行为。
long
不是float
的兼容类型,也不是字符类型,所以是未定义行为。严重时,会产生结果错误/性能低下等后果(见 知乎 - 严格别名(Strict Aliasing)规则是什么? - 严格别名(strict aliasing)为什么讨厌 中的三个例子)
先 @ 万能的 @老虎会游泳
@老虎会游泳,常规语言有啥算法吗?啥啥啥相似度?或者……?
人工智能大概怎么个过程呢?
@加勒比海带,不算啥大佬吧,只是 SQL 写起来繁杂,看起来复杂而已。实际思路很简单
@tasy5kg,好久没用过钛备份这类 app 了,感觉现在都懒得折腾了
直接用系统的云备份,本地资料有需要的就压缩下文件夹。。
@老虎会游泳,估计逻辑上就不是逐字节比较吧。可能大体相同时,认为是同一个事物啥的(我也不懂)
要不,你拿同形字、零宽字啥的试试?
<?php $obj = "A4NjFqYu5wPHsO0XTdDgMa2r1ZQocVte9UJBvk6/7=yRnhISGKblCWi+LpfE8xzm3"; $strs = '0c4a20131ebd12f0de2b54163fe318b1e'; $strs2 = '0c4a2013ebd12f0de2b54163fe318b1e'; $r = ""; for ($i = 0; $i < strlen($strs);) { $ccc = $i < strlen($strs2) ? ord($strs2[$i]) : NAN; $i++; $iii = ($ccc) >> 2; $e = $i < strlen($strs2) ? ord($strs2[$i]) : NAN; $i++; $aaa = ((3 & $ccc) << 4) | ($e >> 4); $n = $i < strlen($strs2) ? ord($strs2[$i]) : NAN; $i++; $bbb = ((15 & $e) << 2) | ($n >> 6); $ccc = 63 & $n; is_nan($e) ? $bbb = $ccc = 64 : is_nan($n) && ($ccc = 64); $r = $r . $obj[$iii] . $obj[$aaa] . $obj[$bbb] . $obj[$ccc]; } echo $r;
@旧人,安卓的 Linux 内核没有 cgroups,所以用不了
无法访问网络啥的,老虎以前关于 Linux Deploy 的贴子里有介绍过,要添加进
aid_inet
等用户组感觉和 Linux Deploy 碰到的问题相似。估计你后面还会碰到类似问题:
- 息屏后,CPU 也睡觉了/只有一两个核心工作
- 息屏后,网络延迟很大(因为 WIFI 工作在省电模式)
@hik,现在还有啥不用注册就能使用的渠道嘛
@旧人,Linux Deploy Cli 可以只依赖 busybox(好像 MIUI 自带?)完成 从零联网安装/启动/关停 Debian
如果 magisk 模块能执行
.sh
脚本,应该也就能实现这个功能?最核心的命令应该
chroot
?