【发布时间】:2017-08-18 10:15:32
【问题描述】:
inline string search_prod(string p) //returns a concatenated string of variables which can produce string p
{
int j,k;
string r="";
for(j,0,np)
{
k=1;
while(gram[j][k] != "")
{
if(gram[j][k] == p)
{
r=concat(r,gram[j][0]);
}
k++;
}
}
return r;
}
我以前从未见过这个循环。
【问题讨论】:
-
它没有任何意义,它不是有效的语法。这可能是一个错字,使用逗号
,而不是分号;。 -
在你的代码中搜索相关的宏定义
-
或者它是@CinCout 提到的宏(
for或np)。在这种情况下,你应该尽快扔掉代码,并且永远不要再看那个作者的任何东西。 -
只是为了把它混在一起:C!= C++。选择一个(可能是 C++)。无论如何,由于您没有提供minimal reproducible example,因此无法回答此问题。最大的问题是:
np是什么? -
这不是有效的 C++:“如果程序在保留名称的上下文中声明或定义名称,除非本条款明确允许,否则它的行为是未定义的。[... ] 翻译单元不得#define 或#undef 名称在词法上与关键字相同”。 (17.6.4.3)