【发布时间】:2013-07-11 06:11:03
【问题描述】:
while ( fgets(eqvline, 1024, eqvfile) != NULL ) {
eqvline[strlen(eqvline)-1] = '\0';
if (!strcmp (eqvline, "$SIGNALMAP")) {
start_store_mask = 1;
continue;
}
if (!strcmp (eqvline, "$SIGNALMAPEND")) {
_num_mask_pins = i;
sim_inform ( sim, "[vTPSim] Total of %d pins found in equivalent file.\n", _num_mask_pins);
//return;
start_store_mask = 0;
}
}
你能解释一下这段代码中的continue; 是如何工作的吗?当continue;被执行时,代码会跳转到哪里?再次比较读取新行的eqvline?那么这个代码if (!strcmp (eqvline, "$SIGNALMAPEND")) {什么时候会被调用呢?
【问题讨论】:
-
当 continue 被调用时 主体中的其余语句被忽略,并在循环顶部继续执行,并评估循环的测试(在您的情况下为 fgets)。
-
@Jonathan Leffler 谢谢指正。抱歉我的英语不好。