① C語言源程序文件名的後綴是.OBJ,經過編譯後,生成文件的後綴是什麼經過連接後,生成文件的後綴是什麼
C語言源程序文件名的後綴是.c。C源程序經過C編譯程序編譯之後生成一個後綴為.OBJ的二進制文件,
然後由稱為「連接程序」的軟體,把此.OBJ文件與C語言提供的各種庫函數連接起來生成一個後綴為.EXE的可執行文件。
由高級語言編寫的程序稱為「源程序」,把由二進制代碼表示的程序稱為「目標程序」。為了把源程序轉換成機器能接受的目標程序,這時我們需要具有翻譯功能的軟體--「編譯程序」。每種高級語言都有與它對應的編譯程序。
(1)c源程序編譯生成的二進制代碼擴展閱讀
1、目標文件的擴展名為「.obj」(Windows)或「.o」(Linux)。目標文件已經是機器指令,但還不能運行,因為目標文件還沒有解決函數調用問題。
2、可執行文件的擴展名為「.exe「。
② 我們編寫的匯編語言和C語言如何能夠轉換成計算機可讀的二進制
將用高級語言寫成的程序變成機器可識別的二進制代碼的過程稱為編譯過程.
因為在計算機中,各種信息和數據都是以文件形式存放的.在編輯方式下建立起來的程序文件稱為源程序文件,簡稱源文件(如noname.c),相應的程序叫做源程序.源程序是用高級語言編寫的,它不能直接在機器上運行.因為計算機並不能識別源程序,它僅認識規定范圍內的一系列二進制代碼所組成的指令數據,並按預定的含義執行一系列動作.通常把這些計算機能識別的二進制代碼稱為目標代碼.為了把源程序變成目標代碼,就需要有個"翻譯"做這種轉換工作.具體實現這一轉換功能的軟體就是編譯程序,如C語言編譯程序.
經編譯後生成的目標程序的文件叫做目標文件(如noname.o).
連接:因為程序中會用到庫函數或其他函數,所以目標程序還不能馬上在機器上運行,需要把它們連成一個統一的整體,這就是連接.經過連接就把分離的目標程序連成完整的可執行程序,對應的文件是可執行文件.
運行:運行可執行文件,可得到相應的結果.如果發現運行結果不正確,那麼就要分析出錯原因,然後重新進入編輯方式,修改源程序.經編輯之後,再重復上述的編譯,連接,運行等步驟.
我們用QASM寫的是源程序,編寫好的程序編譯後形成的.obj是目標文件。.obj通過連接程序後形成.exe可執行程序。(WIN系統中程序編譯過程)
深入講解見參考資料
③ C語言如何編譯成可以直接在CPU運行的二進制碼
你編譯好的可執行文件就是二進制文件,包括機器碼指令和數據。Linux上生成的一般是ELF格式,帶文件頭和段記錄,你可以用strip什麼的去掉。
④ C語言源程序的文件擴展名為
文件的擴展名是.H,源文件是.C,目標文件一般是.OBJ。
在Linux平台上,C語言源代碼文件一般擴展名為.c,預處理操作後的文件名擴展名一般為.i,編譯器生成的匯編代碼一般擴展名為.s,生成的可執行文件一般擴展為.out,它是有匯編器生成的,所以默認gcc生成的程序名為a.out意思即為Assembler output 。
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
二十世紀八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標准局為C語言制定了一套完整的美國國家標准語法,稱為ANSI C,作為C語言最初的標准。[1]目前2011年12月8日,國際標准化組織(ISO)和國際電工委員會(IEC)發布的C11標準是C語言的第三個官方標准,也是C語言的最新標准,該標准更好的支持了漢字函數名和漢字標識符,一定程度上實現了漢字編程。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
⑤ C語言採用解釋方式將源程序轉換為二進制的目標代碼嗎
不是,C語言採用編譯方式將源程序轉換為二進制的目標代碼。使用C語言編譯器來完成。
所謂C語言編譯器,就是把編程得到的文件,比如.c,.h的文件,進行讀取,並對內容進行分析,按照C語言的規則,將其轉換成cpu可以執行的二進制文件。其本質在於對文件的讀入,分析,及處理。
C語言編寫的程序代碼稱為源程序,對於計算機本身來說,它並不能直接識別由高級語言編寫的程序。C語言程序經C語言編譯程序編譯後,生成後綴為.obj的二進制文件(稱為目標文件)。
此.obj文件必須與系統提供的各種庫函數連接起來生成一個後綴為.exe的可執行文件才可以執行。C語言的可執行文件由一系列機器指令構成的。
(5)c源程序編譯生成的二進制代碼擴展閱讀
解釋執行和編譯執行是計算機語言的執行方式。解釋執行由解釋器現場解釋執行,不生成目標程序。如BASIC便是解釋執行,一般解釋執行效率較低,低於編譯執行。
編譯執行由編譯程序將目標代碼一次性編譯成目標程序,再由機器運行目標程序。如:PASCAL,C,C++,delphi等語言。效率高於解釋執行。
⑥ C語言源碼生成目標文件後的二進制碼是原碼,反碼,還是補碼
當然是補碼了。計算機中所有的表示都是用補碼。因為正數的補碼就是它本身,所以正數在內存中既是原碼也是補碼,負數肯定是補碼了哦。所以都是補碼。
你說的」反碼和原碼只用了介紹補碼為什麼出現,實際上已經不用了?「是因為為了引出補碼的概念和利用反碼和原碼如何求補碼,所以就介紹了反碼和原碼。對於負數
補碼=取反+1;
所以原碼=取反(補碼-1)
你看反碼是補碼和原碼之間的聯系,介紹它就是為了計算
對於正數,補碼=原碼=本身,也是為了求補碼
⑦ c語言是如何編譯成二進制
計算機專業有門課程叫做《編譯原理》,詳細講述了怎麼把高級語言翻譯成匯編語言活著機器能看懂的二進制代碼。
簡單的說,C語言是通過編譯器翻譯成二進制代碼的(就像英譯漢的軟體把英文翻譯成漢語一樣。把高級語言翻譯成機器語言過程很復雜,學了編譯原理就懂了)。還有編譯器可以用各種語言編寫,C語言可以被用C語言寫的編譯器來編譯。
⑧ C/C++語言編譯生產可執行的二進制文件的過程求大神詳盡解釋,
預編譯。編譯器將你的.c、.cpp源代碼,通過解釋其中的預編譯指令,將源代碼轉換成相應的沒有任何預編譯指令的代碼。
編譯、優化。將上一步的代碼編譯成匯編指令,並作一定優化,形成對應的.s匯編代碼
匯編。將.s文件匯編成機器碼,形成對應的.o目標文件,此時是不可執行的二進制文件。生成對應的清單文件。為了連接需要,還會生成未定向符號表、導出符號表、地址重定向表等等。
連接。先根據對應的清單文件、連接文件及之間的調用關系,決定所有的目標文件及引用的庫文件在最後可執行文件中的位置;然後做一些其他事情,比如根據符號表等將目標文件中的符號地址補全等等;最終得到可執行文件。
這只是我個人的簡單理解,更詳盡的解答都可以寫成好幾本書了=_=望採納~
⑨ C源程序經編譯形成的二進制代碼可以直接運行嗎
不可以直接運行,源程序是程序員寫給人看的,電腦執行的都是.EXE程序或者是二進制可執行代碼,所以得將源程序進行編譯連接然後才能生成可執行的程序也就是二進制的代碼。
源代碼(也稱源程序)是指未編譯的按照一定的程序設計語言規范書寫的文本文件,是一系列人類可讀的計算機語言指令。
在現代程序語言中,源代碼可以是以書籍或者磁帶的形式出現,但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。
計算機源代碼的最終目的是將人類可讀的文本翻譯成為計算機可以執行的二進制指令,這種過程叫做編譯,通過編譯器完成。
(9)c源程序編譯生成的二進制代碼擴展閱讀:
如果按照源代碼類型區分軟體,通常被分為兩類:自由軟體和非自由軟體。自由軟體一般是不僅可以免費得到,而且公開源代碼;相對應地,非自由軟體則是不公開源代碼。所有一切通過非正常手段獲得非自由軟體源代碼的行為都將被視為非法。
對於計算機而言,並不存在真正意義上的「好」的源代碼;然而作為一個人,好的書寫習慣將決定源代碼的好壞。源代碼是否具有可讀性,成為好壞的重要標准。軟體文檔則是表明可讀性的關鍵。
對軟體進行說明,即對軟體的編寫進行說明。為數不少的初學者,甚至少數有經驗的程序員都忽視軟體說明的編寫,因為這部分不會在生成的程序中直接顯示,也不參與編譯。
但是注釋代碼對軟體的學習、分享、維護和軟體復用都有巨大的好處。因此,書寫軟體說明在業界被認為是能創造優秀程序的良好習慣,一些公司也硬性規定必須書寫。
網路-源代碼 (一系列人類可讀的計算機語言指令)