楼上好像都不对,如果是没有#include
创新互联公司专注于成都做网站、网站制作、网页设计、网站制作、网站开发。公司秉持“客户至上,用心服务”的宗旨,从客户的利益和观点出发,让客户在网络营销中找到自己的驻足之地。尊重和关怀每一位客户,用严谨的态度对待客户,用专业的服务创造价值,成为客户值得信赖的朋友,为客户解除后顾之忧。
"math.h"
那么提示应该是无法理解函数之类的,但这个是找不到math.h这个文件,去C编辑器目录下的INCLUDE文件夹找找有没有math.h这个文件,我推测应该是没了。。
看你那么晚还在学习,帮你改一下:
#includestdio.h
int calculate(int lng, int width, int hight);//函数参数不能用C语言的关键字long
int main()
{
int m_long;
int m_width;
int m_hight;
int result;
printf("请输入长度\n");
scanf("%d",m_long);
printf("请输入宽度\n");
scanf("%d",m_width);
printf("请输入高度\n");
scanf("%d",m_hight);
result=calculate(m_long,m_width,m_hight);
printf("长方体的体积是 ");
printf("%d\n",result);
getchar();
getchar();
return 0;
}
int calculate(int lng, int width, int hight)//这里的分号要去掉
{
int result=lng*width*hight;
return result;
}
c++编程中出现“missing function header (old-style formal list?)”是(编译错误)缺少函数标题(是否是老式的形式表?)
分析:函数定义不正确,函数首部的“( )”后多了分号或者采用了老式的C语言的形参表。
例如:# include stdio.h
void main()
{
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",a,b,c);
d=max(a,b,c);
printf("max=%d\n",d );
}
int max(int x,int y,int z);
{
int d;
if(xy)d=x;else d=y;
if(dz);else d=z;
return(d);
}
Cpp1.cpp(11) : error C2447: missing function header (old-style formal list?)
执行 cl.exe 时出错.
解决:int max(int x,int y,int z); 这一行最后多一个分号“;” (是说下面max定义的地方,不是main函数中的max函数申明),导致编译器认为这里仍然是max的申明,从而导致后面的括号没有意义。去掉int max(int x,int y,int z);后面的“;”即可。
扩展资料
c++编程错误类型及分析
一、error LNK2001: unresolved external symbol _main
中文对照:(连接错误)未处理的外部标识main
分析:一般是main拼写错误,例如“void mian()”
二、error LNK2005: _main already defined in Cpp1.obj
中文对照:(连接错误)main函数已经在Cpp1.obj文件中定义
分析:未关闭上一程序的工作空间,导致出现多个main函数
三、warning C4003: not enough actual parameters for macro 'xxx’
中文对照:(编译警告)宏xxx没有足够的实参
分析:一般是带参宏展开时未传入参数
四、warning C4067: unexpected tokens following preprocessor directive - expected a newline
中文对照:(编译警告)预处理命令后出现意外的符号 - 期待新行
分析:“#include iostream.h ;”命令后的“;”为多余的字符
五、warning C4091: ‘’ : ignored on left of ‘type’ when no variable is declared
中文对照:(编译警告)当没有声明变量时忽略类型说明
分析:语句“int ;”未定义任何变量,不影响程序执行
缺少了头文件math.h
有可能你忘了写
#include math.h
也可能环境变量INCLUDE没有设置好,环境变量INCLUDE要包含math.h所在的文件夹名.
int main(void); //后面多了个分号,导致这只是个声明了,把分号去掉就好
你用的应该是C++的编译器,C++对函数申明不做强制要求,如果函数没有申明,直接使用的话,会给你一个默认申明。
编译过了之后,连接器是根据函数名称进行连接,和申明关系不大,所以,连接器也能找到正确的函数进行连接。
但你这个程序,应该会生成一些warning,提示部分函数没有申明。