常見的編程語言源文件后綴名
眾所周知,編程語言源文件的后綴名可以幫助我們快速的判斷其是哪種語言,從而選擇合適的編譯器,方便我們后期的學(xué)習(xí)和操作。
在介紹編程語言源文件后綴名之前,我們先把編程語言分個類:常見的分類為機(jī)器語言(由二進(jìn)制碼0和1構(gòu)成)、匯編語言、高級語言三個。還可以將其分為編譯語言(典型的有C、C++、Go、Swift、object-c以及匯編等)和解釋性語言(Javascript、python、php、perl、Ruby等)以及混合性語言(Java和C#等)
機(jī)器語言
首先我們要明白,機(jī)器語言和后綴名沒有必然聯(lián)系;其次,機(jī)器語言一般不需要編譯和解釋,對一般的單片機(jī)或嵌入式CPU,機(jī)器語言的后綴名一般為.bin(直接的二進(jìn)制文件)或.hex(16進(jìn)制文本),對操作系統(tǒng)來說,機(jī)器語言就是可執(zhí)行文件,在windows系統(tǒng)中,典型的是.exe.dll.com.sys等,而在linux系統(tǒng)中機(jī)器語言一般沒有后綴,因為在Linux中,帶有擴(kuò)展名的文件,只能代表程序的關(guān)聯(lián),并不能說明文件是可以執(zhí)行,從這方面來說,Linux的機(jī)器語言擴(kuò)展名沒有太大的意義。
匯編語言
匯編語言源文件的后綴名是以**.asm**結(jié)尾的,需要經(jīng)過編譯器編譯成.exe或者.com文件,才能在命令行中運(yùn)行。在這里我們補(bǔ)充一下編譯型語言和解釋性語言的區(qū)別:
編譯型語言原理:通過專門的編譯器,將所有源代碼一次性轉(zhuǎn)換成特定平臺(Windows、Linux等)執(zhí)行的機(jī)器碼(以可執(zhí)行文件的形式存在)。
優(yōu)點:編譯一次后,脫離了編譯器也可以運(yùn)行,并且運(yùn)行效率高。
缺點:可移植性差,不夠靈活。
解釋型語言原理:由專門的解釋器,根據(jù)需要將部分源代碼臨時轉(zhuǎn)換成特定平臺的機(jī)器碼。
優(yōu)點:跨平臺性好,通過不同的解釋器,將相同的源代碼解釋成不同平臺下的機(jī)器碼。
缺點:一邊執(zhí)行一邊轉(zhuǎn)換,效率很低
高級語言
說到高級語言,不得不提一下我上大學(xué)最開始接觸的一門語言-C語言,雖然是很棒的一門語言,但是學(xué)習(xí)了兩個月之后就放棄了,因為對于剛軍訓(xùn)完的我來說挑戰(zhàn)太大了,但是當(dāng)我知道我的發(fā)家語言python的內(nèi)核以及l(fā)inux內(nèi)核也是由C語言和C++編寫的時候,我就增加了重新學(xué)習(xí)C語言的希望,話不多說,我們繼續(xù)正題。
C語言源文件后綴名是.c,編譯生成的文件后綴名是.obj,連接后可執(zhí)行文件的后綴名是.exe。
.h文件中一般放的是同名.c文件中定義的變量、數(shù)組、函數(shù)的聲明,需要讓.c外部使用的聲明。
.c文件一般放的是變量、數(shù)組、函數(shù)的具體定義
在C語言中:
頭文件后綴名:.h
源文件后綴名:.c
在C++中:
頭文件后綴名:.h,.hpp,.hxx
源文件后綴名:.cpp,.cc,.cxx,.C.c++
這里補(bǔ)充一下C++的源文件后綴名:VC里用cpp作后綴名,在GCC里默認(rèn)采用C、cc、cxx作為后綴名
(VSfile).cpp,.h
(GCCfile).cc,.h
詳細(xì)見如下:
GCC文件中后綴名:
C為后綴的文件,C語言源代碼文件;
.a為后綴的文件,是由目標(biāo)文件構(gòu)成的檔案庫文件;
.C,.cc或.cxx為后綴的文件,是C++源代碼文件;
.h為后綴的文件,是程序所包含的頭文件;
.i為后綴的文件,是已經(jīng)預(yù)處理過的C源代碼文件;
.ii為后綴的文件,是已經(jīng)預(yù)處理過的C++源代碼文件;
.m為后綴的文件,是Objective-C源代碼文件;
.o為后綴的文件,是編譯后的目標(biāo)文件;
.s為后綴的文件,是匯編語言源代碼文件;
.S為后綴的文件,是經(jīng)過預(yù)編譯的匯編語言源代碼文件。
C#后綴名是:.cs
CS文件主要是與primarily,VisualC#.NET,SourceCode等相關(guān)聯(lián)的游戲文件。
C#編譯后綴名:*.dll
(C#這門語言,作為小白的我沒有接觸過,所以只能給大家分享到這里了)
Java源文件名的后綴是:“.java”。
.java結(jié)尾的是源文件,本質(zhì)上就是個文本文件。.class結(jié)尾的是java編譯器編譯源文件所得的java字節(jié)碼文件,是二進(jìn)制的。真正能運(yùn)行的是這個.class結(jié)尾的文件,java虛擬機(jī)(解釋器)可以解釋并運(yùn)行編譯出來的.class文件
PHP是在服務(wù)器端執(zhí)行的腳本語言.
后綴名為“.php”的文件格式是一種動態(tài)網(wǎng)頁編碼的存儲格式,包含了PHP腳本代碼
.pm是用perl語言寫的模塊文件
.pl是用perl語言寫的腳本文件
Python文件的后綴名有:“.py源碼文件”、“.py3(python3腳本,很少使用)”、“.pyc編譯文件,執(zhí)行速度快于.py結(jié)尾的文件,經(jīng)常用于向外發(fā)布,例如Github開源網(wǎng)站上就有許多其結(jié)尾的文件”、“.pyo是優(yōu)化編譯后的程序”、“.pyd其它其它語言編寫的擴(kuò)展文件,與dll文件相當(dāng)”、“.pyi”、“.pyx”、“.pyz”、“.pywz”、“.rpy”、“.pyde”、“.pyp”、“.pyt”。(因篇幅有限,其它的后綴名下次再講)
Kotlin(Android官方支持開發(fā)語言)文件以.kt為后綴。