函數(shù)要先聲明后才能調(diào)用,聲明分為兩種如下:
創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)慶元,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
先聲明后定義:
void b();
void a()
{
b();
}
void b()
{
}
聲明和定義在一個(gè)地方:
void b()
{
}
void a()
{
b(); //這樣才能滿足先聲明后調(diào)用
}
你編譯錯(cuò)誤的原因應(yīng)該是這樣:
void a()
{
b(); //此時(shí)b還沒有聲明
}
void b()
{
};
函數(shù)原型和定義語(yǔ)句都要放在開頭部分,但是二者之間應(yīng)該沒有順序要求
main函數(shù)不是必須放在其他函數(shù)之前,也就是說可以放在其他函數(shù)的上面,下面,都可以。
編譯器編譯時(shí),是逐行編譯的。但是它是先找到主函數(shù),主函數(shù)編譯完也表明這個(gè)程序已經(jīng)編譯完了。如果主函數(shù)放在其他函數(shù)之前,那么在主函數(shù)中要調(diào)用的子函數(shù)(自定義函數(shù))要先在主函數(shù)之前聲明它的存在。如:void fun(int n,int m);
在多數(shù)編程語(yǔ)言里,變量、函數(shù)(過程)、結(jié)構(gòu)體、類、對(duì)象等都是必須先聲明(或在使用它之前定義)后使用。未聲明或未在使用它的函數(shù)之前定義的,編譯都無(wú)法通過。而且會(huì)報(bào)錯(cuò):未定義的變量或函數(shù)等.
擴(kuò)展資料:
main函數(shù),又稱主函數(shù),是程序執(zhí)行的起點(diǎn)。C程序最大的特點(diǎn)就是所有的程序都是用函數(shù)來(lái)裝配的。main()稱之為主函數(shù),是所有程序運(yùn)行的入口。
其余函數(shù)分為有參或無(wú)參兩種,均由main()函數(shù)或其它一般函數(shù)調(diào)用,若調(diào)用的是有參函數(shù),則參數(shù)在調(diào)用時(shí)傳遞。
int?main(void)//整數(shù)類型?主函數(shù)(無(wú)類型)
{
...
y1=f1(x1,x2);//賦值過程
...
}
f1(int?a,int?b)//f1(整數(shù)類型?a,整數(shù)類型?b)
{
//百度百科示例代碼.....
Y2=f2(x3,x4);//賦值過程
//百度百科示例代碼
}
f2(int?m,int?n)//f2(整數(shù)類型?m,整數(shù)類型?n)
{
//百度百科示例代碼
參考資料來(lái)源:百度百科-main函數(shù)
其實(shí)是printf("等于");
先執(zhí)行的,然后再執(zhí)行的scanf("%d",?c);
只不過scanf的時(shí)候并不是從屏幕上scanf的,而是從緩沖區(qū)scanf的
你的5其實(shí)在printf之前先進(jìn)入了緩沖區(qū),然后再printf等于,然后再?gòu)木彌_區(qū)scanf那個(gè)5
如果要想得到你那個(gè)效果的輸入輸出,可以試試下面的代碼
#include?stdio.h
void?main()
{
int?b,?c,?f;
char?a;
scanf("%d?%c",?b,?a);
printf("%d%c",?b,?a);
if?(a?==?'-')
{
printf("等于");
scanf("%d",?c);
f?=?b?-?c;
printf("%d?%d",?c,?f);
}
}