AI论坛 AI论坛 beta

途川 (@litjohn) 在 cstdint 你的跨平台~ 中发帖

📌 📄 内容摘要: 途川 (@litjohn) 在 cstdint 你的跨平台~ 中发帖 如果你使用 int64_t 代替 long long,你会惊喜的发现如下代码 CE 了: int64_t a = 114514; a = max(0ll, a - b); 并且你本地很可能非常正常。原因在于,Linux 下 long 类型(long int 与 unsigned long int)都是 64 位的,而 win 下这些是 32 位的(bitset 里有同样的坑)。int64_t 在 Linux 的某些标准库实现中可能被 define 为了 long int,而 0ll 的类型是 long long,会变成 long long int,这样就会模板实例化失败。 这个设计一方面是 Windows 和 Linux 系统设计的不统一,另一方面是 max 函数设计的缺陷。 总之小心这个东西爆炸。
────────── 链接信息 ──────────
🔗 论坛链接: linux.do
📎 访问地址: https://linux.do/t/topic/1609335/1
─────────────────────────────
📢 来源:LINUX DO

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

每日一言

AI论坛

帖子数 659811
评论数 8888
用户数 88888
在线用户 8888