1. 首页 > 科技

error C2447: missing function header (old-style formal list?) 报错 新人不是很懂 有错误希望帮忙改

error C2447: missing function header (old-style formal list?) 报错 新人不是很懂 有错误希望帮忙改正

c++编程中出现“missing function header (old-style formal list?)”错误时什么意思?

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(x>y)d=x;else d=y;

if(d>z);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 ;”未定义任何变量,不影响程序执行

C语言,vc说error C2447: missing function header (old-style formal list?)不知道这个错误什么意思?求解

哥们,看看你main()后面那个“;”、、、删了吧、、、

error C2447: '{' : missing function header (old-style formal list?)

int main();//补充,错误4,这里多了一个分号

{

float a,b,c,v://错误1,这里不是':'号,而是分号(';')

s=2.0;//错误2,这里是a,而不是s//警告1,这样写a=2.0f这样才是float

b=3.0;

c=4.0;

v=a*b*c;

printf("%f\n",v)//错误3,这里少一个分号

}

error C2447: missing function header (old-style formal list?)什么意思,要怎么改

#include<iostream>

#include<string>

using namespace std;

void sorf(int s[]); //这里不要分号

{ int i,j;

int temp;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

if(s[j]>s[j+1])

{temp=s[j];s[j]=s[j+1];s[j+1]=temp;}

}

void sorf(long s[]);

{int i,j;

long temp;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

if(s[j]>s[j+1])

{ temp=s[j];s[j]=s[j+1];s[j+1]=temp;

}

}

void sorf(float s[]); //这里也不要分号

{int i,j;

float temp;

for(i=0;i<n;i++)

for(j=0;j<n;j++)

if(s[j]>s[j+1])

{temp=s[j];s[j]=s[j+1];s[j+1]=temp;}

}

int main()

{

int a[5]={1,5,2,3,4};

long b[5]={1000,200,-2511,-511114,5841};

float c[5]={0.1,0.5,-8.1,-5.4,5.1};

sorf(a);

sorf(b);

sorf(c);

return 0;

}

你的程序里面还没有定义n。n是一个全局变量吗?那要写在using namespace std;下面。如果是都是局部的话,还要多传一个参数