而(A == B); vs while(a == b){;}

sub*_*e85 3 c c++ systemc

以下代码之间是否有区别:

  1. while (a==b);
  2. 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.想知道这是否会以某种方式影响性能?

And*_*owl 8

它会对编译器或执行时间产生影响吗?

不,这是完全一样的.在运行时没有任何差异,编译时间的差异是解析的可忽略的差异{;}.

如果您因任何原因必须选择一个,请选择一个让您更清楚的意图.