A. 函數非法定義是什麼回事c語言
不能再一個函數內定義另一函數;
void main()
{ double fun(int n){ } }
是錯誤的。
自己定義的函數要在main()聲明 如
double fun(int n)——自己定義的函數的聲明
void main()
{ a= fun(b); }
double fun(int n)
{ }
如果自己定義的函數在main()前定義c就不需聲明。
double fun(int n)
{ a= fun(b); }
void main()
{ }
B. C語言 函數定義概念問題
先舉個例子:
#include <stdio.h>
int max(int,int); //這是函數max的申明,最後要加分號
int main()
{
int a=1,b=2,c;
c = max(a,b); //這是函數max的使用
printf("%d",c);
return 0;
}
int max(int n,int m) //這是函數max的定義部分,最後不加分號
{
if (n>m)
return n;
else
return m;
}
不能在函數體內定義函數是什麼意思?
【就是說函數在程序中不能嵌套定義,這個和Pascal語言不同,例如上面程序中,max函數不能定義在main函數中間】
定義是聲明還是使用?
【定義既不是申明,也不是使用,函數具體功能的實現代碼叫做函數的定義,如上面程序最後7行就是定義】
函數不是應該先聲明在使用嗎?
【是的,但如果函數定義在函數使用之前,就可以不用申明(如下面程序)。函數定義在函數使用後的情況下(如上面程序),先聲明,能使編譯器在編譯在編譯過程中能夠識別使用的函數】
#include <stdio.h>
int max(int n,int m) //這是函數max的定義部分,最後不加分號
{
if (n>m)
return n;
else
return m;
}
int main()
{
int a=1,b=2,c;
c = max(a,b); //這是函數max的使用
printf("%d",c);
return 0;
}
定義如何解釋?
【見第二個問題】
C. C語言 C2601這個是什麼意思該怎樣解決
翻譯過來就是局部函數定義非法,就是函數定義的位置不對,好好查一下你的代碼吧
D. 關於c語言的函數聲明
函數聲明它為編譯器提供了有用的信息,編譯器在翻譯代碼的過程中,只有見到函數原型(這里即可以是聲明也可以是定義)之後才知道這個函數的名字、參數類型和返回值,這樣碰到函數調用時才知道怎麼生成相應的指令,所以函數原型必須出現在函數調用之前,這也是遵循「先聲明後使用」的原則。
注意上面說的函數原型是包括函數聲明和定義兩種形式的。
另外還有一種特殊情況,就是
隱式聲明:
隱式聲明的函數返回值類型都是int;
如下
#include<stdio.h>
main()
{
printf("%d\n",jiec(5));
}
int jiec(int n)
{
int y=1;int i;
for(i=1;i<=n;i++)
y=y*i;
return(y);
}
這個程序也是可以運行的。主要返回值為int.
E. 本地函數定義是非法的,什麼意思
一般是出現這個錯誤的函數的前一個函數大括弧不匹配
F. c語言定義函數是什麼
c語言定義函數是一段可以重復使用的代碼,用來獨立地完成某個功能,它可以接收用戶傳遞的數據,也可以不接收。
接收用戶數據的函數在定義時要指明參數,不接收用戶數據的不需要指明,根據這一點可以將函數分為有參函數和無參函數。
函數就是一段封裝好的,可以重復使用的代碼,它使得我們的程序更加模塊化,不需要編寫大量重復的代碼。函數可以提前保存起來,並給它起一個獨一無二的名字,只要知道它的名字就能使用這段代碼。
C語言特點及運用范圍:
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。它既具有高級語言的特點,又具有匯編語言的特點。
C語言特點:簡潔的語言、具有結構化的控制語句、豐富的數據類型、豐富的運算符、可對物理地址進行直接操作、代碼具有較好的可移植性、可生成高質量、目標代碼執行效率高的程序。
C語言是一門面向過程的計算機編程語言,C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。C語言描述問題比匯編語言迅速、工作量小、可讀性好、易於調試、修改和移植,而代碼質量與匯編語言相當。
G. void display(char board[][SIZE]);為什麼這句在C語言里的定義功能函數是非法的。
你是想定義一個二維數組吧
第一 你有沒有在前面宏定義一個SIZE大小,數組只能分配具體內存,不能用變數作為角標的
第二。後面多了一個分號
假如你只是想定義一個一維數組,那麼把[SIZE]和分號去掉即可
H. 求解C語言程序 急!!! 為什麼函數定義非法
#include<stdio.h>
#include<math.h>
intmain()
{
intmsm1(charx);
intmsm2(inta,intb,intc);
doublemsm3(doubleb);
printf("******************** ");
printf("選擇一個功能 ");
printf("A.寫出對應的大(小)寫字母 B.求三個數中最大的一個 C.求一個數的算數平方根 ");
chari;
while((i=getchar())!=EOF){
getchar();
switch(i){
case'A':
{
intz;
chara;
printf("pleaseinputamunber: ");
a=getchar();
getchar();
z=msm1(a);
printf("%c",z);break;
}
case'B':
{
intx,c,v,b;
printf("pleaseinput3number: ");
scanf("%d%d%d",&x,&c,&v);
b=msm2(x,c,v);
printf("%d",b);break;
}
case'C':
{
doublea;
doubleb;
printf("pleaseinputanumber: ");
scanf("%lf",&b);
a=msm3(b);
printf("%lf",a);break;
}
}
}
return0;
}
intmsm1(charx)
{
if(x>90)
x=x-32;
else
x=x+32;
return(x);
}
intmsm2(inta,intb,intc)
{
intq;
q=a>(b>c?b:c)?a:(b>c?b:c);
return(q);
}
doublemsm3(doubleb)
{
doublex;
x=sqrt(b);
return(x);
}
I. C語言定義函數的錯誤
在c中可以嵌套調用函數,但不可以嵌套定義函數。函數嵌套調用是允許的。int a(){b();//調用函數b } 函數嵌套定義是錯誤的。int a(){int b() //在函數a中定義函數b{…………}
J. C語言問題,定義函數的時候,出現了這樣的錯誤,請問哪裡出錯了
1、在C語言中^是位運算符(異或),兩邊操作數需為整數,你的寫法左邊是浮點數,故報語法錯誤。
2、C語言中,冪運算有幾種方式:用e來表示10的次方;用函數pow;循環相乘。