當前位置:首頁 » 編程語言 » c語言運行顯示missing
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言運行顯示missing

發布時間: 2023-01-22 09:29:49

A. 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 ",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);後面的「;」即可。

(1)c語言運行顯示missing擴展閱讀

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 ;」未定義任何變數,不影響程序執行

B. 單片機c程序老是報錯出現missing";"

看他的報錯提示(藍色箭頭所指),在第六行,也就是unsigned char Display Date[8];這句。變數名是不能帶空格的,所以Display Date[8]編譯器是不識別的,它會認為這是兩個語句,所以報錯缺分號。解決方法:把這個變數名字中間的空格,用下劃線「_」代替。同樣,程序中所有用到這個變數的地方都要這么修改。另,函數名也是不允許出空格的,第七行這個void Dig Display();以及用到這個函數的地方,也是一並要改的。

C. C語言無緣無故提示缺少分號:missing ';' before identifier '...'

scanf("%d", &price);

D. C語言程序出現錯誤missing ')' before 'type'

intmain(void){
shuru(void);//這一句把void去掉,它只能出現在函數聲明中。。
xing(a);
shuchu(a);
return0;
}

另外好像還有幾處錯誤

int*shuru(void){
inti=0,*a1;
for(;i<10;i++){
scanf("%d",&a[i]);
}
a1=&a[0];
return*a1;//此處把*去掉,因為a1已經是指針了,你加*傳遞的就是int類型了。。
}

E. c語言中聲明數組時明明都寫好了卻顯示 "missing ["是怎麼回事

一定要對數組初始化。要不結果會出錯的! int a[100]; int i; for還有一樓的你的代碼過於死板,沒有通用性,在logo語言中通用性是很重要的。

F. c語言編譯出現missing ';' before 'type'

這個報錯的原因是你的代碼在某句話的後面沒有加上;號,至於在哪裡沒加,你把你完整的代碼發出來看看

G. c語言調試失敗總顯示missing ; before...但是我仔細檢查了沒有錯誤啊

沒有main函數啊,不可以直接運行呀!

H. C語言里出現missing ';' before 'type'

printf("四位數字之和為:);

少一個分號。改成一下的代碼
printf("四位數字之和為:");
錯誤提示就是說少了一個;你就在代碼提示的行號附近找問題就好了

I. c語言中提示missing ;但是我找過了沒有發現

#include <stdio.h>
#include<conio.h>//getch函數所需的頭文件
main()
{
void d();//要在主函數裡面聲明在主函數下面定義的自定義函數,而且你的d()沒有類型,我加上了一個void
char choice;
while(1)
{
printf("1.d\n2.f\n3.exit\n\nplease choose 1/2/3.");
choice=getch();//這個getch函數在conio頭文件裡面,所以前面要加上一個#include<conio.h>
switch(choice)
{
case '1': d(); break;
/*case '2;f(); break;
case '3': exit(); break;*/
default: printf("error, please try again"); getch();
}
}
}
void d()//這個地方加上void
{
int a,b;
char c;
// clrsc();//這個函數我不知道有什麼用,所以給你注釋了。要是你想要用這個函數的話你可以去網路一下這個函數的頭文件,然後加在代碼最前面就行了
scanf("%d%c%d",&a,&c,&b);
switch(c)
{
case '+': printf("=%d",a+b); break;
case '-': printf("=%d",a-b); break;
case '*': printf("=%d",a*b); break;
case '/': printf("=%d",a/b); break;//你的這個地方寫成尖括弧了,我給你改成圓括弧了。
default: printf("sorry, I cannot do this");
}
printf("press 1 to continue; press 2 to f; press 3 to exxit");
getch();
}