gpt4 book ai didi

types - Ada - 关于 "mod 64"类型定义的编译器警告

转载 作者:行者123 更新时间:2023-12-02 06:26:46 27 4
gpt4 key购买 nike

我需要一个有效值介于 0 到 63 之间的模块化整数类型。比如……

type Mix_Byte is mod 64;

这确实按预期编译和工作,但编译器帮助我注意到我可能的疏忽......

warning: 2 ** 64 may have been intended here

碰巧我根本不打算那样做,但很高兴知道编译器正在注意 :)

它似乎只对值 32 或 64 发出此警告,而不是 8、16 或 128。我知道 32 和 64 是常见的整数大小,在这些情况下 2 ** n 会有道理。

我如何针对这个特定的实例消除这个特定的编译器警告(我想在我的项目中全局允许它,以防我在其他地方犯下真正的错误)。

我想我可以用不同的方式表达代码以便更准确地表达我的意思吗?

最佳答案

你可以试着写成2的幂:

type Mix_Byte is mod 2**6;

编辑:

或者,(基于您评论中的更多信息)您可以使用命名数字作为模数:

Modulus : constant := 64;
type Mix_Byte is mod Modulus;

关于types - Ada - 关于 "mod 64"类型定义的编译器警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58779505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com