如何在C中设置变量的最大和最小限制?

时间:2019-02-27 23:54:25

标签: c

  1. 如果要设置一个“大于或等于100”和“小于或等于200”的int变量,该怎么做?

  2. 如果我想将最大字符串长度设置为1024,但是如何设置最小字符串长度,我听说就像“ char a [1024]”一样。

1 个答案:

答案 0 :(得分:1)

  

1。如果要设置一个“大于或等于100”和“小于或等于200”的int变量,怎么办?

C整数对象的范围由其类型的常量(例如INT_MIN, UCHAR_MAX, LLONG_MIN)设置。用户无法选择100或200。

  

2。如果我想将最大字符串长度设置为1024,但是如何设置最小字符串长度,我听说就像“ char a [1024]”一样。

首先:不按1:来自strlen(a)的合法可能值为[0 ... 1023],而不是1024。

在C中,最大和最小长度是不可控制的,整个可设置的极限。需要明智地编写代码,以免超出目标数组范围(在OP示例中,空字符为1023 + 1)

在使用各种方法填充数组时,代码可能要格外小心。如果目标数组不足,则代码可能需要采用其他路径。

int len = snprintf(a, sizeof a, "%d %s", some_int, some_string);
if (len < 0 || (unsigned) len >= sizeof a) {
  puts("Encoding error, or buffer is too small");
  // Destination was likely too small.
}