以下代码之间是否有区别:
while (a==b);while (a==b) {;}它会对编译器或执行时间产生影响吗?
这个问题的背景:目前FW使用代码1,其中a或b实际上是一个全局变量,FW在特定核心中挂起/等待,直到另一个核心使条件成立为止.我们想在SystemC中模拟这个代码,这个"无限"while循环不在SystemC上下文中,因此SystemC调度程序不会知道这个线程正在等待另一个,导致死锁.
因此,我们希望用以下代码替换代码: while (a==b) {CONTEXT_SWITCH(1);}
我们在哪里进行目标构建:
#define CONTEXT_SWITCH(x)
Run Code Online (Sandbox Code Playgroud)
对于systemC构建,我们有:
#define CONTEXT_SWITCH(x) wait(x) //where wait is a systemC wait
Run Code Online (Sandbox Code Playgroud)
在目标构建的情况下,此代码变为代码2.想知道这是否会以某种方式影响性能?
它会对编译器或执行时间产生影响吗?
不,这是完全一样的.在运行时没有任何差异,编译时间的差异是解析的可忽略的差异{;}.
如果您因任何原因必须选择一个,请选择一个让您更清楚的意图.
| 归档时间: |
|
| 查看次数: |
752 次 |
| 最近记录: |