📜  门| GATE CS 2021 |套装2 |第40章

📅  最后修改于: 2021-07-02 17:43:51             🧑  作者: Mango

考虑以下ANSI C代码段:

z = x + 3 + y-> f1 + y-> f2;
对于(i = 0; i <200; i = i + 2){如果(z> i)
{
p = p + x + 3;
q = q + y-> f1;
} 别的
{
p = p + y-> f2;
q = q + x + 3;
}
}
假设变量y指向包含两个字段f1和f2的结构(分配在堆上),并且局部变量x,y,z,p,q和i被分配了寄存器。通用子表达式消除(CSE)优化应用于代码。在优化的代码中,加法和解引用操作(形式为y-> f1或y-> f2)的数量分别为:
(A) 403和102
(B) 203和2
(C) 303和102
(D) 303和2答案: (D)
说明:总共300次加法(对于每个迭代3次加法运算(p + c,q + a)或(p + b,q + c),(i + 2)

c = x + 3;
z = c + a + b

303个加法运算和2个解引用运算(对于y-> f1,y-> f2)。
这个问题的测验