Ⅰ c語言:main函數必須放在其他函數之前為什麼不對
main函數不是必須放在其他函數之前,也就是說可以放在其他函數的上面,下面,都可以。
編譯器編譯時,是逐行編譯的。但是它是先找到主函數,主函數編譯完也表明這個程序已經編譯完了。如果主函數放在其他函數之前,那麼在主函數中要調用的子函數(自定義函數)要先在主函數之前聲明它的存在。如:void fun(int n,int m);
在多數編程語言里,變數、函數(過程)、結構體、類、對象等都是必須先聲明(或在使用它之前定義)後使用。未聲明或未在使用它的函數之前定義的,編譯都無法通過。而且會報錯:未定義的變數或函數等.
(1)c語言主函數與其他函數位置擴展閱讀:
main函數,又稱主函數,是程序執行的起點。C程序最大的特點就是所有的程序都是用函數來裝配的。main()稱之為主函數,是所有程序運行的入口。
其餘函數分為有參或無參兩種,均由main()函數或其它一般函數調用,若調用的是有參函數,則參數在調用時傳遞。
intmain(void)//整數類型主函數(無類型)
{
...
y1=f1(x1,x2);//賦值過程
...
}
f1(inta,intb)//f1(整數類型a,整數類型b)
{
//網路示例代碼.....
Y2=f2(x3,x4);//賦值過程
//網路示例代碼
}
f2(intm,intn)//f2(整數類型m,整數類型n)
{
//網路示例代碼
Ⅱ C語言規定,在一個源程序中,main函數的位置是在哪
C 正確;
如果main中調用函數,那麼這個函數必須在mani函數的前面。但是也可以在main函數的前面聲明。因為代碼是從main 函數開始,一條一條的順序執行的。
例:
abc();
main()
{
abc();
}
abc()
{
//內部實現
}
這樣就是在前面聲明。
例2;
abc()
{
//內部實現
}
main()
{
abc();//直接調用,因為abc已經在前面定義並且了。
}
Ⅲ c語言中,main函數的位置
程序執行的起點。
main函數,又稱主函數,是程序執行的起點,main是相對來說的,如同音學理論之主調於泛音,泛音即程序中的除main之外的其他函數,迎合人們的思考方式而生成的而非必定的模式。有主有次,執行起來條清縷析,既可將程序模塊化又實現了一個閉合的整體。
C++中的main函數
C++繼承了C語言的大部分特性,因此保留了「程序總是從main函數開始執行,且總是默認從main函數的return語句或結尾處結束運行」這一傳統。
但是要注意,C++中的main函數要想作為程序執行的出入口,必須寫在全局(Global)范圍,不能寫成某個結構體或某個類的成員。雖然main函數可以作為結構體或者類的成員函數,但相應地會失去作為程序出入口的功能。
C++中全局main函數的書寫格式與C語言完全相同,功能也完全相同,且同一C++程序同樣只能有一個全局main函數。
Ⅳ C語言規定,在一個C程序中,MAIN()函數的位置可以放在哪
放在前後都可以
函數的使用分為聲明和定義
1.如果函數在主函數後面定義,則要在調用前聲明。
2.如果函數在主函數之前定義,則調用前不用再此聲明,直接用就可以。
註:函數的定義指的是有函數體,即指定了函數的功能,函數的聲明是不用寫出函數體的
例如:int max(int int);它是聲明
int max(int a,int b);它是定義
{
a>b?a:b;
}
對於這些在C語言的書中還會有具體講解。
Ⅳ c語言程序的主函數必須在其他函數之前嗎一個c語言程序總是從主函數開始執行
c語言程序的主函數並不必須在其他函數之前。一個c語言程序總是從主函數開始執行,即便放在最後,也是從主函數開始執行。
Ⅵ C語言 子函數和主函數的放置前後順序區別
先回答下第一個問題,子函數的實現方法可以放在使用它的主函數或者其它子函數後面,但是你的定義一定要在使用它之前;不然編譯器怎麼知道你用的函數square是什麼,這就是我們經常包含頭文件的一個目的,頭文件是一些函數定義或者預編譯命令。
修改是在#include<stdio.h>後面加
int square(int num);
第二個問題:num是在main定義是可以在main作用域內直接使用,或者當做參數傳遞給子函數,你的問題num為什麼可以在子函數中用,首先你子函數的num並非main里的num只是你把他們名字寫成一樣了;main里num是通過值傳遞給子函數的num,實際他們兩個num的內存地址是不一樣的,你子函數換個名字去理解一下。
Ⅶ 在C語言程序中,主函數main()必須放在首函數的位置嗎
不必,編譯器編譯時,是逐行編譯的。但是它是先找到主函數,主函數編譯完也表明這個程序已經編譯完了。如果主函數放在其他函數之前,那麼在主函數中要調用的子函數(自定義函數)要先在主函數之前聲明它的存在。如:void fun(int n,int m);
在多數編程語言里,變數、函數(過程)、結構體、類、對象等都是必須先聲明(或在使用它之前定義)後使用。未聲明或未在使用它的函數之前定義的,編譯都無法通過。而且會報錯:未定義的變數或函數等!
Ⅷ C語言中主函數和被調函數位置能變嗎
主函數和被調函數位置可以改變。不過如果被調函數和主調函數不在同一個文件中,或者被調函數在主調函數的同一文件內的下方,那麼在主調函數調用被調函數前,需要進行被調函數的聲明。
下面以主調函數為main,被調函數為func做例子,編寫示例代碼,輔助理解。
1 主調函數與被調函數在同一文件內,且被調函數在前。
這種情況直接調用即可。
#include<stdio.h>
voidfunc(void)
{
printf("thisisfunc ");
}
intmain()
{
func();
}
2主調函數與被調函數在同一文件內,且被調函數在後。
需要在調用前聲明。
#include<stdio.h>
voidfunc(void);//在被調前聲明,也可以在函數內聲明,如下方注釋。
intmain()
{
//如果沒有在函數外聲明,那麼可以在函數內聲明。如下:
voidfunc(void);//此處聲明和函數外聲明保留一個即可。
func();
}
voidfunc(void)//被調函數在主調函數之後。
{
printf("thisisfunc ");
}
3主調函數與被調函數不在同一文件內。
可以採用同第2種同樣的聲明方式,不過建議增加extern關鍵字,表明該函數為外部文件定義,但該關鍵字並非強制,沒有同樣不會出問題。
文件a.c
#include<stdio.h>
voidfunc(void)//存在於a.c中的func.
{
printf("thisisfunc ");
}
文件main.c
#include<stdio.h>
externvoidfunc(void);//聲明為外部函數,無extern也可以。同樣可以聲明在函數內。
intmain()
{
//如果沒有在函數外聲明,那麼可以在函數內聲明。如下:
externvoidfunc(void);//此處聲明和函數外聲明保留一個即可。
func();
}
不過更常用的方式是把函數聲明寫在頭文件中,並在主調函數所在的文件引用。
文件a.h
#ifndef_A_H_//這兩行是為避免重復引用和循環引用。
#define_A_H_
voidfunc(void);//將函數聲明置於頭文件。
#endif
這種情況下main.c需要寫成:
#include<stdio.h>
#include<a.h>//引用頭文件。
intmain()
{
func();//調用函數。
}
Ⅸ C語言規定,在一個源程序中,main函數的位置( )。
答案選C,一個C程序總是從main函數開始執行的,不論main函數在整個過程中的位置如何。
系統執行了庫文件的引用,打開了鏈接庫,然後執行了函數外的定義和聲明之後,就會自動尋找main函數,然後在main函數內自動調用其他函數。
main函數在程序中大多數是必須存在的,但是依然有例外情況,比如windows編程中可以編寫一個動態鏈接庫dll模塊,這是其他windows程序可以使用的代碼。由於DLL模塊不是獨立的程序,因此不需要main函數。
(9)c語言主函數與其他函數位置擴展閱讀:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
參考資料:C語言網路