#include<stdio.h>
#include<stdlib.h>
#include<stdarg.h>
double add(int num,...){
double last=0.0;
va_list argp;
va_start(argp, num);
for(int i=0;i<num;i++){
printf("\n%f",va_arg(argp,double));
}
va_end(argp);
return last;
}
void main()
{
int x=10;
double jieguo;
jieguo=add(x,1.2,2.3,3.4,4.5,5.6,6.7,7.8,8.9,9.10,10.11);
printf("\n%f",jieguo);
getchar();
}
void main1()
{
printf("%d",10);
}
总是报错
1>e:\grade1learning\ctest\可变参数函数\可变参数函数\可变参数.c(9): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>e:\grade1learning\ctest\可变参数函数\可变参数函数\可变参数.c(9): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>e:\grade1learning\ctest\可变参数函数\可变参数函数\可变参数.c(9): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
1>e:\grade1learning\ctest\可变参数函数\可变参数函数\可变参数.c(9): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>e:\grade1learning\ctest\可变参数函数\可变参数函数\可变参数.c(9): error C2065: “i”: 未声明的标识符
1>e:\grade1learning\ctest\可变参数函数\可变参数函数\可变参数.c(9): warning C4552: “<”: 运算符不起任何作用;应输入带副作用的运算符
1>e:\grade1learning\ctest\可变参数函数\可变参数函数\可变参数.c(9): error C2065: “i”: 未声明的标识符
1>e:\grade1learning\ctest\可变参数函数\可变参数函数\可变参数.c(9): error C2059: 语法错误:“)”
1>e:\grade1learning\ctest\可变参数函数\可变参数函数\可变参数.c(9): error C2143: 语法错误 : 缺少“;”(在“{”的前面)
1>
1>生成失败。
原因:
纯c要求局部变量定义必须在函数开头,然后才能有其他语句。
纯c确实对变量声明的位置有要求,c++却可以随用随定义的。
说明vs是严格执行了纯C的这个标准。
使用Visual C++6.0 也存在上述问题。
所以Visualstudio还是使用.cpp文件省事。
所以,改为 可变参数.cpp 即可生成成功