期望')'之前';' token g++
Expected ‘)’ before ‘;’ token G++
GCC一直告诉我:
expected ') ' before '; ' token,
') '标记前预期的主表达式
期望';' before ') '标记
我找不到问题。下面是有问题的函数:
void prim(){
prepararEstructuras();
int min,k;
for(int i=1;i<nnodos;i++){
min = menorCoste[1];
k = 1;
for(int j=2;i<nnodos;j++)
if(menorCoste[j] < min){
min = menorCoste[j];
k = j;
}
solucion[k][masCercano[k]] = G[k][masCercano[k]];
menorCoste[k] = infinito;
for(int j=1;j<nnodos;j++)
if(G[k][j] < menorCoste[j] && menorCoste[j]!=infinito){
menorCoste[j] = G[k][j];
masCercano[j] = k;
}
}
}
这是引起问题的行:
if(G[k][j] < menorCoste[j] && menorCoste[j]!=infinito){
这里是我的变量:
#define MAX_NODOS 20000
#define infinito 10000;
int nnodos;
int nAristas;
int G[MAX_NODOS][MAX_NODOS];
int solucion[MAX_NODOS][MAX_NODOS];
int menorCoste[MAX_NODOS];
int masCercano[MAX_NODOS];
宏中有一个额外的分号。
#define infinito 10000;
^
把它扔掉
事实上,你的行被扩展成这样:
if(G[k][j] < menorCoste[j] && menorCoste[j]!=10000;){
^ does not belong here
或者,根本不使用宏:
const int MAX_NODOS = 20000;
const int infinito = 10000;
请学会使用良好的风格。在外部语句(例如包含其他语句的语句)中省略括号是一种非常糟糕的风格。
然而,实际的错误在于一些预处理语句及其生成的代码:#define infinito 10000;
在表达式之间产生了一个额外的分号,而您并不期望有这样一个额外的表达式。特别是在你根本不需要分号的地方
相关文章:
- Arduino无法编译名为SP:"Expected ')' before '(' token"的变量
- 为什么我的功能在使用 goto 时会给我带来"expected primary-expression before '}' token"?
- 使用结构和数组时的"expected primary expression before '.' token"
- 如何解决"Expected expression before " = " token"?
- 我可以将"token pasting operator"与"const"模板参数一起使用吗?
- 错误:创建模板类时"expected unqualified-id before '{' token"
- 无法在硬件模式下创建 SGX 安全区 - "invalid launch token"即使文档将无效的启动令牌指定为第一个
- 预计“ [''token之前,预计无限制的ID
- 如何解决"expected constructor, destructor, or type conversion before ‘(’ token"错误?
- 'context string for the given token'是什么意思?
- QWebEngineView & API Access Token fetching
- 这个编译器错误是什么意思 - "qualified-id in declaration before ‘=’ token" C++?
- C 预期的类名称{token,一个继承错误
- Netbeans 中的C++:许多毫无意义的"unexpected token"提示
- 获取链表上的"expected ‘)’ before ‘&’ token"到 BST 构造函数签名
- 使用宏访问指向数据成员的指针会导致"error: expected unqualified-id before ‘*’ token"
- "error: expected primary-expression before '<=' token" 我做错了什么?
- 内存集调用位置的"error: expected constructor, destructor, or type conversion before '(' token"
- 设置if流,获取'error: expected initializer before ‘.’ token'
- 奇怪的错误:标签'loopend'使用但未定义," if "之前应为非限定 id("goto"和" '}' token "错误相同