C 在类的外部定义函数时遇到:E0147,声明与"***“(已声明 所在行数:**)不兼容 的错误
时间: 2023-11-26 09:02:57 浏览: 992
在C++中,当在类的外部定义函数时,需要注意函数的声明与定义是否一致。如果出现了E0147错误,说明函数的声明与定义不兼容。这可能是由于函数的参数类型、返回值类型或者函数名不一致导致的。解决这个问题的方法是检查函数的声明和定义是否一致,确保它们的参数类型、返回值类型和函数名都相同。
另外,还有一种可能是在类的外部定义函数时,没有加上类的作用域限定符。在这种情况下,需要在函数名前加上类名和作用域限定符,例如:
```cpp
int ClassName::FunctionName(int a, int b)
{
// 函数体
}
```
这样就可以解决E0147错误了。
相关问题
用c语言实现编写一个函数,函数的功能:输出“*****”
以下是用C语言实现输出“*****”的函数:
```c
#include <stdio.h>
void printStars() {
printf("*****\n");
}
int main() {
printStars(); // 输出:*****
return 0;
}
```
c语言编程:使用指针,编写一个字符串比较的函数,函数声明为:int strcmp(char *p1,char *p2);
好的,以下是使用指针编写字符串比较函数的代码:
```c
int strcmp(char *p1, char *p2) {
while (*p1 != '\0' && *p2 != '\0') {
if (*p1 != *p2) {
return *p1 - *p2;
}
p1++;
p2++;
}
return *p1 - *p2;
}
```
这个函数接收两个指向字符串的指针,然后进行逐字符比较。如果两个指针指向的字符相同,则继续比较下一个字符,直到遇到某个指针指向的字符为 `\0`(即字符串结束符)为止。如果在比较的过程中发现两个指针指向的字符不相同,则返回它们的 ASCII 值之差。如果两个字符串完全相同,则返回 0。
希望对你有帮助!
阅读全文