如何为字符数组添加注释?

时间:2014-04-11 02:12:36

标签: frama-c

我是Frama-C的新手,我一直在寻找关于如何为char数组编写注释的注释。通常在示例中我看到它们使用整数。所以我不确定我写的是否正确。

我有这个功能:

    User *login(char id[25], char pass[25], User *list);

我写了下面的注释,但我不太确定:

    /*@ requires \valid(list);
      @ requires \valid_range(id, 0, 25-1);
      @ requires \valid_range(pass, 0, 25-1);
    */

1 个答案:

答案 0 :(得分:2)

如果没有对你的函数应该作为参数的非正式描述,很难确定,但你的规范看起来确实是正确的,尽管它可能稍微不完整。以下是requires关于论点的说法:

  • list必须是有效指针
  • idpass必须是指针(记住在 formals 声明中,你没有数组,只有指针)到(至少)的块25 char。更准确地说,您必须能够取消引用idid+1 ... id+24

请注意,\valid_range已弃用,而\valid(id+(0 .. 24-1))的含义完全相同。

这些要求是有道理的,但是,根据功能应该做什么,您可能需要其他要求。例如,idpass应该是以0结尾的字符串吗?