我是否必须在控制流图中考虑预处理程序指令?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我是否必须在控制流图中考虑预处理程序指令?相关的知识,希望对你有一定的参考价值。
将C代码转换为控制流图时,是否必须考虑预处理程序指令?
例如:
#define pi 3.14
从我的角度来看,没有必要将它们视为命令,因为它们在运行时没有被处理。
答案
正如here所说,正如你自己所说,预处理器不会改变运行时。每个指令都是在编译程序之前执行的,因此您不需要在图中考虑它们,因为每个预处理程序指令在运行时都是常量。
但是,您可以为宏做一个例外,因为它定义了一些可以在运行时使用的行为,比如函数。
另一答案
对于控制流图而言重要的是预处理器的输出。如果一个人执行类似#define woozle(x,y,z) (x() ? y() : z())
的事情,然后使用woozle(f1,f2,f3)
然后在绘制控制流图时,应该将其视为(f1() ? f2() : f3())
,而不考虑如何在预处理器的输出中表示该令牌的组合。
以上是关于我是否必须在控制流图中考虑预处理程序指令?的主要内容,如果未能解决你的问题,请参考以下文章