日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言編譯器是用來(lái)做什么的

汽車玩家 ? 來(lái)源:電子發(fā)燒友網(wǎng) ? 2018-03-27 13:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

C語(yǔ)言編譯器及其實(shí)例

C語(yǔ)言是一種結(jié)構(gòu)化語(yǔ)言。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。C語(yǔ)言的表現(xiàn)能力和處理能力極強(qiáng)。它不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實(shí)現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。它還可以直接訪問(wèn)內(nèi)存的物理地址,進(jìn)行位(bit)一級(jí)的操作。由于C語(yǔ)言實(shí)現(xiàn)了對(duì)硬件的編程操作,因此C語(yǔ)言集高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的功能于一體。既可用于系統(tǒng)軟件的開(kāi)發(fā),也適合于應(yīng)用軟件的開(kāi)發(fā)。此外,C語(yǔ)言還具有效率高,可移植性強(qiáng)等特點(diǎn)。因此廣泛地移植到了各類各型計(jì)算機(jī)上,從而形成了多種版本的C語(yǔ)言。

直接插入排序(Straight Insertion Sort)的基本思想是將新記錄插入到已經(jīng)排好序的有序表中,初始有序表只有無(wú)序表的第一個(gè)數(shù)據(jù),依次對(duì)無(wú)序表每個(gè)數(shù)據(jù)進(jìn)行直接插入排序,從而得到了有序表,具體步驟為

若新記錄小于有序表高位l.r[j],則設(shè)置哨兵

有序表后移,j+1=j

重復(fù)第2步,直至新紀(jì)錄》=有序表中的j記錄,則j+1就是要插入的位置

從而得到一個(gè)新的、記錄數(shù)增加1的有序表。

#include 《stdio.h》

typedef float keyType;

typedef struct{

keyType score;

char name[20];

}student;

typedef struct{

int length=6;

student stu[6];

}sqList;

void SIS(sqList &L){

for(int i=2;i《L.length;i++){

if(L.stu[i].score》L.stu[i-1].score){

L.stu[0]= L.stu[i]://設(shè)置哨兵

int j;

for(j=i-1;L.stu[0].score》L.stu[j].score;j--)

L.stu[j + 1]= L.stu[j];//記錄后移

L.stu[j+ 1]= L.stu[0]://找到位置,插入元素

}

}

}

int main(){

sqList L;

for(int i= 1;i《L.length;i+ +){

printf(“ 請(qǐng)輸入第%d個(gè)學(xué)生的姓名:”,i);

gets(L.stu[i].name);

printf(“分?jǐn)?shù):”);

sCanf(“%f”,&(L.stu[j].score);

getchar();

}

SIS(L);

for(int i= 1;i《L.length;i++){

printf(“ 學(xué)生%s 分?jǐn)?shù)%f 第%d 名”,L.stu[j].name,Lstce);

}

語(yǔ)言是在70年代初問(wèn)世的。一九七八年由美國(guó)電話電報(bào)公司(AT&T)貝爾實(shí)驗(yàn)室正式發(fā)表了C語(yǔ)言。同時(shí)由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一書(shū)。通常簡(jiǎn)稱為《K&R》,也有人稱之為《K&R》標(biāo)準(zhǔn)。但是,在《K&R》中并沒(méi)有定義一個(gè)完整的標(biāo)準(zhǔn)C語(yǔ)言,后來(lái)由美國(guó)國(guó)家標(biāo)準(zhǔn)學(xué)會(huì)在此基礎(chǔ)上制定了一個(gè)C 語(yǔ)言標(biāo)準(zhǔn),于一九八三年發(fā)表。通常稱之為ANSI C。早期的C語(yǔ)言主要是用于UNIX系統(tǒng)。由于C語(yǔ)言的強(qiáng)大功能和各方面的優(yōu)點(diǎn)逐漸為人們認(rèn)識(shí),到了八十年代,C開(kāi)始進(jìn)入其它操作系統(tǒng),并很快在各類大、中、小和微型計(jì)算機(jī)上得到了廣泛的使用。成為當(dāng)代最優(yōu)秀的程序設(shè)計(jì)語(yǔ)言之一。

目前最流行的C語(yǔ)言編譯器有以下幾種:·GNU Compiler Collection 或稱 GCC·Microsoft C 或稱 MS C·Borland Turbo C 或稱 Turbo C這些C語(yǔ)言版本不僅實(shí)現(xiàn)了ANSI C標(biāo)準(zhǔn),而且在此基礎(chǔ)上各自作了一些擴(kuò)充,使之更加方便、完美。

編譯器及其主要工作流程

編譯器,是將便于人編寫(xiě),閱讀,維護(hù)的高階計(jì)算機(jī)語(yǔ)言翻譯為計(jì)算機(jī)能解讀、運(yùn)行的低階機(jī)器語(yǔ)言的程序。編譯器將原始程序(Source program)作為輸入,翻譯產(chǎn)生使用目標(biāo)語(yǔ)言(Target language)的等價(jià)程序。源代碼一般為高階語(yǔ)言 (High-level language), 如 Pascal、C++、Java 等,而目標(biāo)語(yǔ)言則是匯編語(yǔ)言或目標(biāo)機(jī)器的目標(biāo)代碼(Object code),有時(shí)也稱作機(jī)器代碼(Machine code)。

一個(gè)現(xiàn)代編譯器的主要工作流程如下:

源代碼 (source code) → 預(yù)處理器 (preprocessor) → 編譯器 (compiler) → 匯編程序 (assembler) → 目標(biāo)代碼 (object code) → 連接器 (Linker) → 可執(zhí)行程序 (executables)

將C語(yǔ)言源代碼編譯成計(jì)算機(jī)可直接運(yùn)行的目標(biāo)代碼或機(jī)器碼。說(shuō)白了就是把更加貼近于人類語(yǔ)言的程序語(yǔ)言翻譯成更貼近計(jì)算機(jī)的機(jī)器語(yǔ)言。

實(shí)現(xiàn)了基本高級(jí)語(yǔ)言所必須的語(yǔ)法要素,包括簡(jiǎn)單變量聲明、函數(shù)的實(shí)現(xiàn)、整數(shù)和字符串運(yùn)算、條件判斷語(yǔ)句和循環(huán)語(yǔ)句及跳轉(zhuǎn)語(yǔ)句、基本代數(shù)運(yùn)算、賦值等,還支持匯編語(yǔ)言嵌入。本編譯器是利用編譯器生成器Parse Generator和VC6.0在Windows平臺(tái)上實(shí)現(xiàn)的,并開(kāi)發(fā)了一個(gè)基于Windows平臺(tái)的32位編譯集成開(kāi)發(fā)環(huán)境CompilerMan,提供了關(guān)鍵字彩色提示、出錯(cuò)同屏提示、出錯(cuò)代碼跳轉(zhuǎn)等較為完善方便的功能。由于編譯程序本身涉及到詞法分析、語(yǔ)法分析、代碼生成、錯(cuò)誤恢復(fù)和優(yōu)化等諸多模塊,要在實(shí)驗(yàn)中做到面面俱到不太可能,所以本編譯器不可避免的會(huì)存在各種問(wèn)題,但作為一個(gè)具有基本功能的、可擴(kuò)充的系統(tǒng),完全達(dá)到鞏固編譯原理的理論知識(shí),并將其運(yùn)用。

編譯程序,就是一種具有編撰和翻譯功能的程序。人們要用計(jì)算機(jī)來(lái)解決問(wèn)題,首先面臨的一個(gè)問(wèn)題,就是要告訴計(jì)算機(jī)解決什么問(wèn)題,或者告訴計(jì)算機(jī)如何解決這個(gè)問(wèn)題。這就涉及到用什么樣的語(yǔ)言來(lái)描述的問(wèn)題,人所習(xí)慣的自然語(yǔ)言和計(jì)算機(jī)認(rèn)識(shí)的機(jī)器語(yǔ)言有很大的差別,用機(jī)器語(yǔ)言來(lái)描述人想解決的問(wèn)題十分不便,因而,計(jì)算機(jī)科學(xué)家設(shè)計(jì)一些人們比較習(xí)慣的語(yǔ)言來(lái)描述要解決的問(wèn)題,稱之為高級(jí)語(yǔ)言。

用語(yǔ)言來(lái)描述的問(wèn)題,統(tǒng)稱為程序。然而,用高級(jí)語(yǔ)言寫(xiě)的程序,不能被計(jì)算機(jī)所直接認(rèn)識(shí)和理解,必須經(jīng)過(guò)等價(jià)的轉(zhuǎn)換,變成機(jī)器能理解并執(zhí)行的機(jī)器語(yǔ)言的程序。進(jìn)行這種等價(jià)轉(zhuǎn)換工作的工具,就是編譯程序。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    183

    文章

    7648

    瀏覽量

    146234
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1673

    瀏覽量

    52006
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C編譯器錯(cuò)誤與解決方法

    C語(yǔ)言keil編譯器提示錯(cuò)誤的解決方法,可以幫你解決程序編譯中的煩惱!! C編譯器錯(cuò)誤與解決方
    發(fā)表于 01-22 08:03

    請(qǐng)問(wèn)如何實(shí)現(xiàn)C語(yǔ)言訪問(wèn)MCU寄存?

    MCU的寄存。而IAR和CodeVisionAVR編譯器對(duì)ANSI C進(jìn)行了擴(kuò)充,都定義了新的數(shù)據(jù)類型,是C語(yǔ)言可以直接訪問(wèn)MCU的有關(guān)寄
    發(fā)表于 12-26 07:00

    在ADS編譯器中,用標(biāo)準(zhǔn)的C庫(kù)函數(shù)printf()需要哪些設(shè)置呢?

    在ADS編譯器中,用標(biāo)準(zhǔn)的C庫(kù)函數(shù)printf()需要哪些設(shè)置呢?又在哪兒可以看到printf()輸出的信息呢?
    發(fā)表于 12-23 07:32

    C語(yǔ)言C++之間的區(qū)別是什么

    C++的標(biāo)準(zhǔn)庫(kù)那樣集成度高和功能齊全。 6、編譯器語(yǔ)言特性: C++編譯器通常比C
    發(fā)表于 12-11 06:23

    單片機(jī)開(kāi)發(fā)功能安全中編譯器

    的問(wèn)題是,防御性編碼和外部數(shù)據(jù)訪問(wèn)等實(shí)踐并不屬于編譯器認(rèn)可的領(lǐng)域。例如,CC ++都沒(méi)有為內(nèi)存損壞留出任何余地,因此,除非在沒(méi)有這種損壞的情況下可以訪問(wèn)旨在防止內(nèi)存損壞的代碼,否則在對(duì)代碼進(jìn)行優(yōu)化
    發(fā)表于 12-01 06:44

    開(kāi)源鴻蒙技術(shù)大會(huì)2025丨編譯器與編程語(yǔ)言分論壇:語(yǔ)言驅(qū)動(dòng)系統(tǒng)創(chuàng)新,編譯賦能生態(tài)繁榮

    在萬(wàn)物智聯(lián)的時(shí)代背景下,操作系統(tǒng)底層能力的構(gòu)建離不開(kāi)編程語(yǔ)言編譯器的關(guān)鍵支撐。作為開(kāi)源鴻蒙生態(tài)的核心技術(shù),語(yǔ)言設(shè)計(jì)與編譯器、虛擬機(jī)實(shí)現(xiàn)的進(jìn)步直接關(guān)系到開(kāi)發(fā)效率、運(yùn)行性能與系統(tǒng)安全。本
    的頭像 發(fā)表于 11-20 17:24 ?1209次閱讀
    開(kāi)源鴻蒙技術(shù)大會(huì)2025丨<b class='flag-5'>編譯器</b>與編程<b class='flag-5'>語(yǔ)言</b>分論壇:<b class='flag-5'>語(yǔ)言</b>驅(qū)動(dòng)系統(tǒng)創(chuàng)新,<b class='flag-5'>編譯</b>賦能生態(tài)繁榮

    C語(yǔ)言和單片機(jī)C語(yǔ)言有什么差異

    成匯編語(yǔ)言機(jī)器才能讀懂,所以每個(gè)平臺(tái)的編譯器編譯成對(duì)應(yīng)平臺(tái)匯編的程序,每個(gè)平臺(tái)的匯編不一樣,當(dāng)然編譯器也不一樣。 DOS上的TC2 TC3 WINDOWS上的VC 8051的
    發(fā)表于 11-14 07:55

    飛凌嵌入式ElfBoard-Vim編輯之GCC編譯器的安裝

    GCC(GNU Compiler Collection)是由GNU開(kāi)發(fā)的編程語(yǔ)言編譯器,最初是作為GNU操作系統(tǒng)的編譯器編寫(xiě)的。GCC是一個(gè)編譯器套件,包含很多軟件包,支持多種
    發(fā)表于 10-15 08:44

    GCC編譯器,怎么才能實(shí)現(xiàn)c文件中未被調(diào)用的函數(shù),不會(huì)被編譯呢?

    GCC編譯器,怎么才能實(shí)現(xiàn)c文件中未被調(diào)用的函數(shù),不會(huì)被編譯?有什么編譯選項(xiàng)可以設(shè)置嗎? 移植代碼,有些函數(shù)沒(méi)被調(diào)用的函數(shù)想留在代碼里,但不想被編譯
    發(fā)表于 09-28 12:25

    如何在Keil中將NuMicro BSP從Arm編譯器5遷移到編譯器6?

    在Keil中將NuMicro BSP從Arm編譯器5遷移到編譯器6!
    發(fā)表于 08-20 06:29

    進(jìn)迭時(shí)空同構(gòu)融合RISC-V AI CPU的Triton算子編譯器實(shí)踐

    Triton是由OpenAI開(kāi)發(fā)的一個(gè)開(kāi)源編程語(yǔ)言編譯器,旨在簡(jiǎn)化高性能GPU內(nèi)核的編寫(xiě)。它提供了類似Python的語(yǔ)法,并通過(guò)高級(jí)抽象降低了GPU編程的復(fù)雜性,同時(shí)保持了高性能。目前
    的頭像 發(fā)表于 07-15 09:04 ?2281次閱讀
    進(jìn)迭時(shí)空同構(gòu)融合RISC-V AI CPU的Triton算子<b class='flag-5'>編譯器</b>實(shí)踐

    邊緣設(shè)備AI部署:編譯器如何實(shí)現(xiàn)輕量化與高性能?

    電子發(fā)燒友網(wǎng)綜合報(bào)道 AI編譯器是專門(mén)為人工智能(AI)和機(jī)器學(xué)習(xí)(ML)模型設(shè)計(jì)的編譯器,其核心目標(biāo)是將高級(jí)的AI模型描述(如計(jì)算圖、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu))轉(zhuǎn)換為特定硬件平臺(tái)(如CPU、GPU、FPGA
    的頭像 發(fā)表于 07-06 05:49 ?6990次閱讀

    編譯器功能安全驗(yàn)證的關(guān)鍵要素

    在汽車、工業(yè)、醫(yī)療等安全關(guān)鍵型應(yīng)用中,確保功能安全合規(guī)性需要嚴(yán)格的工具鏈驗(yàn)證。開(kāi)發(fā)安全關(guān)鍵型軟件的企業(yè)必須遵守ISO 26262、IEC 61508、ISO 62304等國(guó)際標(biāo)準(zhǔn)對(duì)編譯器工具鏈進(jìn)行全面的驗(yàn)證。
    的頭像 發(fā)表于 07-05 13:37 ?1727次閱讀

    兆松科技ZCC編譯器全面支持芯來(lái)科技NA系列處理

    近日,兆松科技(武漢)有限公司(以下簡(jiǎn)稱“兆松科技”)宣布正式發(fā)布高性能RISC-V編譯器ZCC 4.0.0版本。
    的頭像 發(fā)表于 06-11 09:56 ?2050次閱讀

    RISC-V架構(gòu)下的編譯器自動(dòng)向量化

    進(jìn)迭時(shí)空專注于研發(fā)基于RISC-V的高性能新AICPU,對(duì)于充分發(fā)揮CPU核的性能而言,編譯器是不可或缺的一環(huán),而在AI時(shí)代,毫無(wú)疑問(wèn)向量算力將發(fā)揮越來(lái)越重要的作用。進(jìn)迭時(shí)空非常重視RISC-V
    的頭像 發(fā)表于 06-06 16:59 ?1481次閱讀
    RISC-V架構(gòu)下的<b class='flag-5'>編譯器</b>自動(dòng)向量化
    淮阳县| 鄂尔多斯市| 绵阳市| 漾濞| 闽侯县| 务川| 伊通| 绥阳县| 横峰县| 来宾市| 旺苍县| 尉氏县| 鸡西市| 邵武市| 乾安县| 东山县| 太保市| 平定县| 宜春市| 辛集市| 乌鲁木齐县| 阳城县| 荃湾区| 佛冈县| 汤阴县| 永丰县| 永嘉县| 新河县| 山西省| 宁陵县| 柳州市| 兴隆县| 阿拉尔市| 汝城县| 新绛县| 古浪县| 龙山县| 色达县| 比如县| 清新县| 松江区|