Я использую инструмент frama-c для анализа кода ниже.Каково значение узла окружности в pdgs, который генерируется frama-c
int main (int argc, char *argv[])
{
int i,a;
for (i = 0; i < 100; i += 1)
{
a=0;
if (a==0)
{
continue;
}
else
{
break;
}
}
return 0;
}
ЦМД является
frama-c -pdg -dot-pdg graph main.c
Мой вопрос о контрольной зависимости. что означает узел круга? Я пытаюсь объяснить узел «while», возможно, он стоит за один временной цикл, потому что цикл начинается с «i < 100», поэтому существует управляющая зависимость («i < 100» ------ o "while"). Правильно ли это? но что означает «разрыв»? Я предполагаю, что узел «goto __Cont»; связано с «перерывом»; в блоке else.
Я думаю, что у меня нет четкой абстрактной модели в моей голове, чтобы понять зависимость от контроля полностью и точно. Вы поможете мне или дадите мне какое-нибудь предложение? Большое спасибо в Advance Tao.
Почему «a = 0» и «a == 0» имеют управляющую зависимость с кругом «break»? потому что перерыв заставит их больше не выполнять? – user1283336