導航:首頁 > 源碼編譯 > 主函數編譯

主函數編譯

發布時間:2022-09-24 23:59:41

Ⅰ 在C語言程序中,只有main函數才可單獨進行編譯,哪裡錯了

有函數的都可以單獨進行編譯,編譯是指把程序語句翻譯為機器代碼,對於C語言就是把.c文件翻譯為.obj文件。

此外,必須要有main函數的才可以完成連接為exe文件。

Ⅱ 有關C語言主函數、for函數及編譯問題

在 C 和 C++ 中,不接收任何參數也不返回任何信息的函數原型為「void foo(void);」。可能正是因為這個,所以很多人都誤認為如果不需要程序返回值時可以把main函數定義成void main(void) 。然而這是錯誤的!main 函數的返回值應該定義為 int 類型,C 和 C++ 標准中都是這樣規定的。雖然在一些編譯器中,void main 可以通過編譯(如 vc6),但並非所有編譯器都支持 void main ,因為標准中從來沒有定義過 void main 。g++3.2 中如果 main 函數的返回值不是 int 類型,就根本通不過編譯。而 gcc3.2 則會發出警告。所以,如果你想你的程序擁有很好的可移植性,請一定要用 int main 。

main 函數的返回值用於說明程序的退出狀態。如果返回 0,則代表程序正常退出;返回其它數字的含義則由系統決定。通常,返回非零代表程序異常退出。

for不是函數,是c語言中一種循環的結構語句的關鍵字

花括弧包圍的語句表示一段程序的整體
通常在for語句後面用花括弧包括的語句,就是每次循環都要運行的語句

你這里的例子,由於需要循環的語句運行只有一句,所以用不用花括弧括起來都是一樣的
如果需要循環運行多句程序,那麼就一定要用花括弧括起來

Ⅲ C語言中一個函數如果在主函數中沒有調用,會被編譯么

會的,當你運行時,編譯器還要檢查你的函數是否有格式或其它錯誤!

Ⅳ C語言中的子函數和主函數有什麼聯系啊它們是怎麼編寫的

在C語言中主函數調用子函數,子函數被主函數調用,這就是它們之間的聯系。編寫函數主要有以下步驟,首先對函數進行定義,語法格式為:

類型說明符 函數名 (含類型說明的形式參數表)

{

語句序列

}

形式參數的作用是實現主函數和被調函數之間的聯系。通常將函數所處理的數據、影響函數功能的因素或函數處理的結果作為形參。

然後還要確定函數的返回值及類型,格式為:

return 表達式;

這個語句的另一個作用是結束當前函數的執行。一個函數可以不將任何值返回主函數,此時它的類型標識符為void,可以不寫return語句,也可以寫一個不帶表達式的return;語句。

(4)主函數編譯擴展閱讀

C語言編程書寫規則:

1、一個說明或一個語句佔一行。

2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。

3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。

Ⅳ C語言入門寫代碼求助。已經聲明了主函數,為什麼編譯出錯提示沒有定義入口點。下面是截圖;

main()
{
....
}
這就是入口點,表示程序由此開始它的旅程,大括弧內就是程序的本身了,從這里一條一條開始執行。

沒定義就是沒有main()函數

Ⅵ c編譯器編譯了頭文件中的主函數,但未編譯頭文件中的了函數

應該是沒有關系的,你把編譯步驟寫清楚,編譯結果和參數說清楚。
根據我對編譯器的理解,這種情況不會發生,最大可能性有幾種:
1、你的代碼本身就很小,你沒有注意到,(一個20K行的程序,編譯出來只有不到15K是十分正常的)因為程序里往往包括注釋、空行等。
2、程序的體積往往取決於變數初始化,例如static int i[1000]={0};這會產生大量的無效代碼。
3、其他編譯器代碼體積問題。
4、編譯參數導致優化方式不一致
其他:如果程序可以運行,說明一定全部都編譯了。
具體的問題,你可以把全部代碼都給我,我幫你看看。這么簡單說有時很難,畢竟寫程序考慮到編譯器和硬體缺陷的人現在很少。

Ⅶ ucOS中的os_cfg文件並沒有寫包含task文件之類的,那主函數中又是怎麼編譯的呢

一般都是自己編寫的,先建個該任務的堆棧,在聲明該任務的優先順序。下面是我自己代碼中用的。
OS_STK TASK_STACK[OS_MAX_TASKS][TASK_SMALL_STK_SIZE]; /*任務堆棧定義,這是任務堆棧數組,裡面的兩個是宏*/
void BSP_Init( void )

{
OS_CPU_SysTickInit(); //初始化時鍾滴答



、、 //這里是你項目中需要的驅動程序。
}
oid Task2(void *p_arg) //這是任務的代碼!
{
p_arg=p_arg;
for(;;)
{
LED1_ON;
OSTimeDly(200);
LED1_OFF;
OSTimeDly(200);
}
}
int main()
{
OSInit();

OSTaskCreate( Task2, //這個是函數指針,函數名就可以了
(void *)0, //
(OS_STK*)&TASK_STACK[2][TASK_SMALL_STK_SIZE-1], //任務堆棧
(INT8U)TASK2_LED); //任務優先順序

}
OSStart(); //執行到這UCOS開始跑起來了。

return(0);

}

//時間片切換的不要 太快了,要不然會死機的!就是時鍾滴答不要太快!
希望能對你有幫助!!

閱讀全文

與主函數編譯相關的資料

熱點內容
excel能編程嗎 瀏覽:929
android系統框架的介紹 瀏覽:945
無盤系統伺服器如何配置 瀏覽:836
背負貸款如何緩解壓力 瀏覽:82
linux獲取日期時間 瀏覽:881
搬磚問題最合適的演算法 瀏覽:446
小米安卓機密碼忘記了如何解鎖 瀏覽:910
產電plc編程手冊 瀏覽:761
vscodephp 瀏覽:535
阿里雲linux桌面 瀏覽:754
php二維數組搜索 瀏覽:116
ps快捷命令工具箱 瀏覽:253
c4d教程pdf 瀏覽:462
linux集群安裝配置 瀏覽:154
stc單片機介紹 瀏覽:901
如何解壓失戀的人 瀏覽:493
安卓微信滯後怎麼辦 瀏覽:942
手機編程跟電腦編程一樣嗎 瀏覽:624
android代碼規範文檔 瀏覽:99
word如何加密批註 瀏覽:327