56 11 C:\Users\Administrator\Desktop\2211030720\main.c [Error] redeclaration of 'i' with no linkage
时间: 2023-11-19 11:04:12 浏览: 38
这个错误通常是由于在同一作用域中重复声明了变量而导致的。在C语言中,变量的作用域通常是在花括号{}内。因此,如果您在同一作用域中声明了两个名称相同的变量,则会出现此错误。
解决此问题的方法是确保您在同一作用域中只声明一次变量。您可以通过以下几种方式解决此问题:
1.将变量的声明移动到更高的作用域中,以确保它只被声明一次。
2.更改变量的名称,以便在同一作用域中没有重复的名称。
3.如果您需要在不同的作用域中使用相同的变量名称,则可以使用关键字extern来声明该变量。这将告诉编译器该变量在其他文件中定义,并且不应该在当前文件中重新定义。
```c
extern int i; // 在其他文件中定义的变量i
int main() {
// 使用变量i
return 0;
}
```
相关问题
54 11 C:\Users\周炎\Desktop\作业\通讯录信息管理系统.c [Error] redeclaration of 'i' with no linkage 出了这个问题怎么办
这个错误提示是因为在同一作用域内重复定义了变量'i',导致编译器无法确定该使用哪一个。解决方法是将重复定义的变量名修改为其他名称或者将其中一个定义删除。
另外,这个错误提示还提到了"no linkage",这是指变量'i'没有外部链接性,也就是说它只能在当前文件中使用,不能被其他文件引用。如果需要在其他文件中使用该变量,需要在定义时加上extern关键字,例如:extern int i;
[Error] redeclaration of 'i' with no linkage是什么意思
这个错误提示意味着在同一作用域内多次声明了一个变量或函数。通常情况下,每个变量或函数只能在其作用域内被声明一次。如果你在同一作用域内多次声明一个变量或函数,编译器就会抛出这个错误。这个错误提示还可能意味着你在不同的源文件中使用了同样的全局变量或函数名,这也会导致链接时出错。要解决这个错误,你可以删除重复的声明或将其移动到正确的作用域内。