gpt4 book ai didi

c - 具有值限制的 int 变量的定义

转载 作者:行者123 更新时间:2023-11-30 20:31:58 29 4
gpt4 key购买 nike

我是 C 语言新手。我需要定义一个具有有限值范围的整数变量。

在具体情况下,我需要定义一个 int 变量,它只能采用 0 到 5 之间的值,即 0、1、2、3、4、5。不能少,也不能多。

我需要向 int var 添加什么来定义它,如前所述?或者,这是定义它的正确方式吗?

最佳答案

C 不提供任何工具来限制数值变量的范围 - 您将必须为每个赋值添加自己的运行时检查。

您可以抽象出一个执行检查的赋值函数:

int ranged_assign( int *var, int newVal, int min, int max )
{
int result = 0;
if ( (result = (min <= newVal && newVal <= max) ) )
*var = newVal;

return result;
}
...
if ( !ranged_assign( &x, val, 0, 5 ) )
// handle range error

显然,如果您想直接从输入分配范围变量,这将不起作用。您必须读取临时文件,然后对该临时文件进行范围检查:

if ( scanf( "%d", &tmp ) == 1 )
{
if ( !ranged_assign( &x, tmp, 0, 5 ) )
// handle range error
}
else
// handle input error

您必须找出处理超出范围任务的策略。

关于c - 具有值限制的 int 变量的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49154872/

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