我需要为将指针作为输入的函数的依赖关系编写 ACSL 规范,并在指针不为 NULL 时使用其内容。我认为这个规范是正确的:
/*@ behavior p_null:
assumes p == \null;
assigns \result from \nothing;
behavior p_not_null:
assumes p != \null;
assigns \result from *p;
*/
int f (int * p);
但我宁愿避免这些行为,但我不知道这是否正确(和等效):
//@ assigns \result from p, *p;
int f (int * p);
即使可能是,我可以*p
在正确的部分使用吗?\from
p
NULL