導航:首頁 > 程序命令 > 編譯mainc命令

編譯mainc命令

發布時間:2022-06-10 18:49:18

『壹』 visual studio中用什麼命令編譯c語言

命令是cl

比如你要編譯main.c

就是 cl main.c

只要安裝了Visual Studio都會帶命令行工具,幫你把需要的庫,頭文件,編譯器都臨時加入環境變數 ,不需要自己設置,也不用在環境變數里加一堆值

『貳』 建立一個MakeFile,使之可編譯為Main.c,並且可以用Make clean命令清除中間文件

a.out:Main.c
gcc -o a.out Main.c
clean:
rm a.out

『叄』 main函數 在每個c語言程序中都是必須的嗎

C語文程序中必須有main()函數。

C的設計原則是把函數作為程序的構成模塊。main()函數稱之為主函數,一個C程序總是從main()函數開始執行的。

一、main()函數的形式
在最新的 C99 標准中,只有以下兩種定義方式是正確的:

int main( void ) /* 無參數形式 */
{
...
return 0;
}

int main( int argc, char *argv[] ) /* 帶參數形式 */

{
...
return 0;
}
int指明了main()函數的返回類型,函數名後面的圓括弧一般包含傳遞給函數的信息。void表示沒有給函數傳遞參數。關於帶參數的形式,我們等會討論。

瀏覽老版本的C代碼,將會發現程序常常以main()這種形式開始。C90標准允許這種形式,但是C99標准不允許。因此即使你當前的編譯器允許,也不要這么寫。

你還可能看到過另一種形式。
void main()

有些編譯器允許這種形式,但是還沒有任何標准考慮接受它。C++ 之父 Bjarne Stroustrup 在他的主頁上的 FAQ 中明確地表示:void main( ) 的定義從來就不存在於 C++ 或者 C 。所以,編譯器不必接受這種形式,並且很多編譯器也不允許這么寫。
堅持使用標準的意義在於:當你把程序從一個編譯器移到另一個編譯器時,照樣能正常運行。

二、main()函數的返回值
從前面我們知道main()函數的返回值類型是int型的,而程序最後的 return 0; 正與之遙相呼應,0就是main()函數的返回值。那麼這個0返回到那裡呢?返回給操作系統,表示程序正常退出。因為return語句通常寫在程序的最後,不管返回什麼值,只要到達這一步,說明程序已經運行完畢。而return的作用不僅在於返回一個值,還在於結束函數。

現在我們來做一個小試驗來觀察main()函數的返回值。編寫如下代碼並編譯運行:
//a.c
#include "stdio.h"
int main(void)
{
printf("I love you.");
return 0;
}
將這個文件保存為a.c,編譯運行後會生成一個a.exe文件。現在打開命令提示符,在命令行里運行剛才編譯好的可執行文件,然後輸入 echo %ERRORLEVEL% ,回車,就可以看到程序返回 一個0 。如果把 return 0; 改為 return 99; ,那麼很顯然,再次執行上述步驟以後你可以看到程序返回99。要是你這樣寫 return 99.99; 那還是返回99,因為99.99被傳給操作系統之前,被強制類型轉換成整數類型了。

現在,我們把a.c改回原來的代碼,然後再編寫另一個程序b.c:
//b.c

#include "stdio.h"
int main(void)
{
printf("I』m too.");
return 0;
}
編譯運行後打開命令提示符,在命令行里輸入a&&b 回車,這樣你就可以看到《人鬼情未了》裡面經典的愛情對白:
I love you.

I』m too.

&& 的含義是:如果 && 前面的程序正常退出,則繼續執行 && 後面的程序,否則不執行。所以,要是把a.c裡面的 return 0; 刪除或者改為 return 99; ,那麼你只能看到 I love you. 。也就是說,程序b.c就不執行了。現在,大家該明白 return 0; 的作用了吧。

三、main()函數的參數
C編譯器允許main()函數沒有參數,或者有兩個參數(有些實現允許更多的參數,但這只是對標準的擴展)。這兩個參數,一個是int類型,一個是字元串類型。第一個參數是命令行中的字元串數。按照慣例(但不是必須的),這個int參數被稱為argc(argument count)。大家或許現在才明白這個形參為什麼要取這么個奇怪的名字吧,呵呵!至於英文的意思,自己查字典吧。第二個參數是一個指向字元串的指針數組。命令行中的每個字元串被存儲到內存中,並且分配一個指針指向它。按照慣例,這個指針數組被稱為argv(argument value)。系統使用空格把各個字元串格開。一般情況下,把程序本身的名字賦值給argv[0],接著,把最後的第一個字元串賦給argv[1],等等。

現在我們來看一個例子:

//c.c

#include "stdio.h"
int main(int argc, char *argv[])
{
int count;
printf("The command line has %d arguments:
", argc - 1);
for(count = 1; count < argc; count++)
printf("%d: %s
", count, argv[count]);
return 0;
}
編譯運行,在命令行輸入c I love you 回車,下面是從命令行運行該程序的結果:

The command line has 3 arguments:

1:I

2:love

3:you

從本例可以看出,程序從命令行中接受到4個字元串(包括程序名),並將它們存放在字元串數組中,其對應關系:

argv[0] ------> c(程序名)

argv[1] ------> I

argv[2] ------> love

argv[3] ------> you

至於argc的值,也即是參數的個數,程序在運行時會自動統計,不必我們操心。

這個例子中,每個字元串都時一個單詞(字母),那既然是字元串,要把一句話當作參數賦給程序該怎麼辦?你可以在命令行里這樣輸入 c "I love you." "I』m too."。程序運行結果:

The command line has 2 arguments:

1:I love you.

2:I』m too.

其對應關系:

argv[0] ------> c(程序名)

argv[1] ------> I love you.

argv[2] ------> I』m too.

要注意的是,你在命令行的輸入都將作為字元串形式存儲於內存中。也就是說,如果你輸入一個數字,那麼要輸出這個數字,你應該用%s格式而非%d或者其他。

再來看一個例子:

//d.c
#include "stdio.h"
int main(int argc, char *argv[])
{
FILE *fp;
fp = fopen(argv[1], "w");
fputs("I love you.", fp);
fclose(fp);
return 0;
}
編譯運行,打開命令行並輸入d love.txt 回車。這樣,打開d.c文件所在的目錄,你會發現多了一個名為 love.txt 的文件,打開後裡面的內容正是世界上說的最多的那句話。

當然,你可能會說我不需要使用命令行參數就可以做到這些。是的,你當然可以。使用命令行參數的理由或許就是練習命令行用法,以備以後需要編寫基於命令行的程序。還有一個好處是,不需要C環境就可以運行已經編譯好的程序。比如,你把上面那個程序編譯後生成的d.exe發給你的女朋友,再告訴她怎麼運行,這樣,你的女朋友可以用另一種方式體會到你對她的濃情蜜意。

參考:http://c.biancheng.net/cpp/html/725.html

『肆』 c語言從main開始執行,那編譯也是從main開始嗎

編譯不是從main函數開始的。編譯工程:先編譯預處理命令,也就是#include,#defined,#ifndef。。。的預處理命令。然後為全局變數分配空間,才編譯main函數。

『伍』 將這個程序保存成main.c,然後編譯執行,怎麼編譯執行

若使用的是TC,那麼使用ctrl+f9,若使用VC6,直接單擊工具欄的運行就可以。

『陸』 C語言編譯.o時提示undefined reference to `main'怎麼辦

一般是缺少相應的頭文件,新建項目時 選擇console application,不要選MFC的那種項目。

主函數應該寫成int main(),你寫成mian了。

『柒』 C語言 main(int argc,char**argv)

char **argv是一個指向字元型的指針數組的指針,首先它是一個指針,這個指針是指向數組的,這個數組裡面的成員也指針,成員指針是指向字元型數組的。

char **argv也可寫成char argv[][], 看到數組就好理解了。

『捌』 C語言main函數詳解

main函數,一般初級編程不用到參數,

例如main(){};

可是牽扯到遞歸調用和函數返回值的時候就要用到了主函數的參數了,用來記錄函數返回值的。
對main()函數始終作為主調函數處理,也就是說,允許main()調用其它函數並傳遞參數。事實上,main()函數既可以是無參函數,也可以是有參的函數。對於有參的形式來說,就需要向其傳遞參數。但是其它任何函數均不能調用main()函數。當然也同樣無法向main()函數傳遞,只能由程序之外傳遞而來。

main()函數的帶參的形式:
main(argc,argv)
int argc,char *argv[];
{
};

從函數參數的形式上看,包含一個整型和一個指針數組。當一個C的源程序經過編譯、鏈接後,會生成擴展名為.EXE的可執行文件,這是可以在操作系統下直接運行的文件,換句話說,就是由系統來啟動運行的。對main()函數既然不能由其它函數調用和傳遞參數,就只能由系統在啟動運行時傳遞參數了。
在操作系統環境下,一條完整的運行命令應包括兩部分:命令與相應的參數。

格式為:
命令參數1參數2....參數n

此格式也稱為命令行。命令行中的命令就是可執行文件的文件名,其後所跟參數需用空格分隔,並為對命令的進一步補充,也即是傳遞給main()函數的參數。

命令行與main()函數的參數存在如下的關系:
設命令行為:program str1 str2 str3 str4 str5
其中program為文件名,也就是一個由program.c經編譯、鏈接後生成的可執行文件program.exe,其後各跟5個參數。對main()函數來說,它的參數argc記錄了命令行中命令與參數的個數,共6個,指針數組的大小由參數argc的值決定,即為char*argv[6]。

數組的各指針分別指向一個字元串。應當引起注意的是接收到的指針數組的各指針是從命令行的開始接收的,首先接收到的是命令,其後才是參數。

明白不,還不懂,看看譚浩強的那本經典的c語言吧。
祝你成功!

『玖』 linux 怎麼編譯c的源程序的gcc,編譯命令是什麼

在Linux下面,如果要編譯一個C語言源程序,我們要使用gcc編譯器。

先將源文件編譯成目標文件:gcc - c hello.c

生成hello.o文件,再將目標文件編譯成可執行文件:gcc -o hello hello.o

如:

int main(int argc,char **argv)

{

printf("Hello Linux ");

}

(9)編譯mainc命令擴展閱讀:

在使用GCC編譯器的時候,我們必須給出一系列必要的調用參數和文件名稱。GCC編譯器的調用參數大約有100多個,這里只介紹其中最基本、最常用的參數。具體可參考GCC Manual。

GCC最基本的用法是∶gcc [options] [filenames]

其中options就是編譯器所需要的參數,filenames給出相關的文件名稱。

網路_gcc

『拾』 如何在Windows下用命令行編譯C/C++文件

在控制台編譯運行一個C程序,在windows上的c語言編譯器為cl.exe,在linux平台上的c語言編譯器是gcc。
在命令提示符中,執行cl
test.c(test.c是c語言源碼文件)。下圖是用cl編譯器編譯main.cxx的誰的,並且執行生成的程序main.exe。

閱讀全文

與編譯mainc命令相關的資料

熱點內容
安卓開機音樂壓縮包名字是什麼 瀏覽:226
壓縮氣體氣壓怎麼算 瀏覽:585
手機怎樣建造文件夾 瀏覽:850
websocket編程 瀏覽:677
全球十大加密貨幣友好國家 瀏覽:427
咸魚app什麼賣的最好 瀏覽:305
51單片機c語言proteus 瀏覽:827
電視看pdf文件 瀏覽:533
網盤文件夾能鎖嗎 瀏覽:544
雲伺服器斷開滑鼠不消失 瀏覽:549
javattl 瀏覽:403
伺服器為什麼配置價格不一樣 瀏覽:42
javareplaceall正則表達式 瀏覽:261
編譯器本身使用包 瀏覽:231
加盟什麼項目前景好app 瀏覽:305
河源數據加密電話 瀏覽:627
郵件伺服器怎麼清洗 瀏覽:861
apache22安裝php 瀏覽:833
安卓機便簽繪畫怎麼放大 瀏覽:389
對啊app電子教材怎麼下載 瀏覽:340