爲什麼我一直得到這個錯誤?幫助我這是homeowrk。我對編程幫助很陌生。 $ gcc homework.c homework.c:函數'main': homework.c:32:6:error:'DisplayMenu'的靜態聲明遵循非靜態聲明 homework.c:11:7:note: 'DisplayMenu'先前的聲明在這裏'DisplayMenu'的靜態聲明遵循非靜態聲明
#include <stdio.h>
void DisplayMenu();
void numberPlus10();
void numberTimes2();
void numberMinus1();
void numberTimesnumber();
int main (void)
{
int choice;
void DisplayMenu();
scanf("%i", &choice);
switch (choice)
{
case 1:
numberPlus10();
break;
case 2:
numberTimes2();
break;
case 3:
numberMinus1();
break;
case 4:
numberTimesnumber();
break;
default:
break;
}
void DisplayMenu()
{
printf("1. Number + 10\n");
printf("2. Number * 2\n");
printf("3. Number - 1\n");
printf("4. Number * Number\n");
}
void numberPlus10()
{
int x;
printf("Please enter a number:\n");
scanf("%i", &x);
printf("Your number + 10 is %i\n", x + 10);
}
void numberTimes2()
{
int x;
printf("Please enter a number:\n");
scanf("%i", &x);
printf("Your number * 2 is %i\n", x * 2);
}
void numberMinus1()
{
int x;
printf("Please enter a number:\n");
scanf("%i", &x);
printf("Your number - 1 is %i\n", x - 1);
}
void numberTimesnumber()
{
int x;
printf("Please enter a number:\n");
scanf("%i", &x);
printf("Your number squared is %i\n", x * x);
}
}
不,這不是問題。 「你不能在另一個裏面聲明一個函數。」的確我們可以。 – starrify 2013-03-15 08:03:36
沒錯。但TS顯然打算調用函數而不是聲明它。 – 2013-03-15 08:06:44
對不起,但我會指出,實際上我沒有檢查語言規範,所以我不知道C標準是如何處理的。但是,在'GCC 4.7.2'中,聲明一個函數在另一個函數內,除了聲明一種語言之外什麼都不做。並且在編譯時它不會產生任何錯誤(但是在聯繫時間內,如果您嘗試調用該函數並且它沒有在任何地方實現)。 – starrify 2013-03-15 08:08:58