Visual Studio C/C++ 即使代码正确,扩展程序也会显示错误消息
Visual Studio C/C++ extension shows error message even if the code is correct
即使代码正确,我的 Visual Studio 编译器仍向我显示错误消息。
即使是像这样的简单代码,
#include<stdio.h>
int main(){
int add(firstNumber, secondNumber){
int result=firstNumber+secondNumber;
return result;
}
int out=add(10,30);
printf("%d", out);
return 0;
}
正在显示按摩,
expected a ';', line 4
和
identifier "out" is undefined, line 9
代码运行良好。但是在我的代码中看到那些红线和错误消息令人沮丧。
注意:我使用 MinGW 作为 C 路径
问题是你在main中定义的函数,C不支持在其他函数中定义的函数。您的代码应如下所示。
#include <stdio.h>
int add(firstNumber, secondNumber){
int result=firstNumber+secondNumber;
return result;
}
int main(){
int out=add(10,30);
printf("%d", out);
return 0;
}
C 和 C++ 标准都不允许像在这个程序中那样嵌套函数定义
#include<stdio.h>
int main(){
int add(firstNumber, secondNumber){
int result=firstNumber+secondNumber;
return result;
}
int out=add(10,30);
printf("%d", out);
return 0;
}
其中函数 add
在函数 main
中定义。
此外,参数列表中的标识符 firstNumber
和 secondNumber
没有类型说明符。
您必须将函数定义移到 main 之外。例如
#include<stdio.h>
int add( int firstNumber, int secondNumber )
{
int result = firstNumber + secondNumber;
return result;
}
int main( void ){
int out=add(10,30);
printf("%d", out);
return 0;
}
在 C++ 中,您可以使用 lambda 表达式代替函数 add
。例如
#include <cstdio>
int main()
{
auto add = []( int firstNumber, int secondNumber )
{
return firstNumber + secondNumber;
};
int out = add(10,30);
printf( "%d\n", out );
return 0;
}
即使代码正确,我的 Visual Studio 编译器仍向我显示错误消息。
即使是像这样的简单代码,
#include<stdio.h>
int main(){
int add(firstNumber, secondNumber){
int result=firstNumber+secondNumber;
return result;
}
int out=add(10,30);
printf("%d", out);
return 0;
}
正在显示按摩,
expected a ';', line 4
和
identifier "out" is undefined, line 9
代码运行良好。但是在我的代码中看到那些红线和错误消息令人沮丧。
注意:我使用 MinGW 作为 C 路径
问题是你在main中定义的函数,C不支持在其他函数中定义的函数。您的代码应如下所示。
#include <stdio.h>
int add(firstNumber, secondNumber){
int result=firstNumber+secondNumber;
return result;
}
int main(){
int out=add(10,30);
printf("%d", out);
return 0;
}
C 和 C++ 标准都不允许像在这个程序中那样嵌套函数定义
#include<stdio.h>
int main(){
int add(firstNumber, secondNumber){
int result=firstNumber+secondNumber;
return result;
}
int out=add(10,30);
printf("%d", out);
return 0;
}
其中函数 add
在函数 main
中定义。
此外,参数列表中的标识符 firstNumber
和 secondNumber
没有类型说明符。
您必须将函数定义移到 main 之外。例如
#include<stdio.h>
int add( int firstNumber, int secondNumber )
{
int result = firstNumber + secondNumber;
return result;
}
int main( void ){
int out=add(10,30);
printf("%d", out);
return 0;
}
在 C++ 中,您可以使用 lambda 表达式代替函数 add
。例如
#include <cstdio>
int main()
{
auto add = []( int firstNumber, int secondNumber )
{
return firstNumber + secondNumber;
};
int out = add(10,30);
printf( "%d\n", out );
return 0;
}