[Error] anonymous type with no linkage used to declare function 'float KnapSack(<anonymous struct>*)' with linkage [-fpermissive]
时间: 2024-06-01 15:08:43 浏览: 202
这个错误通常是因为在函数声明或定义中使用了匿名结构体或匿名联合体,并且这些结构体或联合体没有指定链接性。
在 C++ 中,结构体和联合体可以有名称或匿名。如果它们没有名称,则被认为是匿名结构体或联合体。匿名结构体或联合体只能在定义它们的作用域内使用,因为它们没有名称,所以无法在其他地方使用。如果您想在其他地方使用它们,必须将它们命名。
要解决这个错误,您需要为使用匿名结构体或联合体的函数声明或定义指定链接性。例如,您可以将该结构体或联合体命名,或者将其定义为全局结构体或联合体。
相关问题
15 5 C:\Users\86131\Documents\哈希找人名.cpp [Error] anonymous type with no linkage used to declare function int InsertHT(<anonymous struct>*, int\\&, KeyType, int) with linkage [-fpermissive]
这个错误是由于在声明函数 `InsertHT` 时使用了没有链接的匿名结构体,导致编译器无法识别该结构体。建议将结构体命名并重新声明函数,例如:
```c++
struct HashTable {
// 结构体成员
};
int InsertHT(HashTable* H, int& P, KeyType K, int D) {
// 函数实现
}
```
这样就能避免这个错误了。
12 19 C:\Users\86131\Documents\哈希找人名.cpp [Warning] anonymous type with no linkage used to declare variable '<anonymous struct> HashTable [100]' with linkage
这个警告是由于在声明变量 `<anonymous struct> HashTable [100]` 时使用了没有链接的匿名结构体,导致编译器无法识别该结构体。建议将结构体命名,并在声明变量时使用命名的结构体类型,例如:
```c++
struct HashTable {
// 结构体成员
};
HashTable H[100]; // 使用命名的结构体类型
int main() {
// ...
}
```
这样就能避免这个警告了。
阅读全文