chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

現(xiàn)代編譯器的可讀性勝過(guò)調(diào)試

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Colin Walls ? 2022-07-01 09:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

編寫(xiě)代碼時(shí),您的首要任務(wù)應(yīng)該是可讀性。大量時(shí)間花在調(diào)試和維護(hù)代碼上,通常遠(yuǎn)遠(yuǎn)超過(guò)最初編寫(xiě)代碼所花費(fèi)的時(shí)間。因此,使該過(guò)程高效是必不可少的。考慮到未來(lái)人類(lèi)讀者的需求(可能是你,當(dāng)然!)比試圖讓代碼“高效”更重要——這項(xiàng)工作主要可以留給現(xiàn)代編譯器。

這種考慮意味著代碼應(yīng)該非常仔細(xì)地格式化和對(duì)齊,并且語(yǔ)言結(jié)構(gòu)應(yīng)該盡可能簡(jiǎn)單和透明。有許多已發(fā)布的指南可以幫助解決這些問(wèn)題。但是,創(chuàng)建可讀代碼并不止于此。

當(dāng)你編譯代碼時(shí),編程語(yǔ)言被翻譯成機(jī)器指令。這是顯而易見(jiàn)的。然而,編譯器實(shí)際接收的是一個(gè)字符流;有些是實(shí)際代碼,但可能有一些不打算翻譯的塊,其他文本可能僅供人類(lèi)使用:

文檔——代碼中的注釋

臨時(shí)刪除的代碼——調(diào)試過(guò)程的一部分,但它可能會(huì)持續(xù)存在

特殊調(diào)試/跟蹤代碼

每一個(gè)的實(shí)現(xiàn)都會(huì)對(duì)可讀性產(chǎn)生一些影響。

文檔

每個(gè)人都知道評(píng)論是個(gè)好主意,但我們大多數(shù)人都很懶惰。但是,一些努力是非常值得的。舊式/*.。.*/注釋符號(hào)是可以接受的,但新的行尾//。..形式更清晰。仍然需要護(hù)理。例如:

int number; // input count

char c; // single character buffer

char buffer[99]; // the input line

很難跟上。對(duì)齊就是一切:

int number; // input count

char c; // single character buffer

char buffer[99]; // the input line

并且不要使用標(biāo)簽;它們不是便攜式的。

臨時(shí)代碼刪除

在軟件開(kāi)發(fā)過(guò)程中,想要對(duì)編譯器“隱藏”部分代碼——將其關(guān)閉——并不少見(jiàn)。執(zhí)行此操作的傳統(tǒng)方法是“注釋掉”——在代碼前加/* ,在后加*/。雖然做起來(lái)很快,但它很容易失效,因?yàn)榫幾g器不一定支持注釋嵌套。較新的//表示法稍微好一點(diǎn),但應(yīng)用和刪除很繁瑣,并且仍然容易出錯(cuò)。

實(shí)現(xiàn)此結(jié)果的最佳方法是使用預(yù)處理器指令,因此:

#if 0

#endif

Debug/Trace code

A particular kind of temporarily visible code is instrumentation – extra code added for debugging and/or tracing. Although modern debuggers and tracing tools can do a remarkable job, sometimes instrumenting the code is the only way to glean visibility and figure out exactly what is happening.

The usual way to accommodate this need is using pre-processor directives, as before, but using a symbol to switch them on and off:

#ifdef DEBUG_TRACE

#endif

So, when the symbol DEBUG_TRACE is defined, the debug code is included.

A slightly different approach is to code it like this:

#ifndef NDEBUG

#endif

Although this double negative does seem confusing, some consistency is introduced, as this symbol is used to enable the standard assert() macro. The symbol needs to be defined to suppress debug mode.

審核編輯:郭婷

聲明:本文內(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)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    20248

    瀏覽量

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

    關(guān)注

    1

    文章

    1672

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    C語(yǔ)言中一些令人震驚的結(jié)構(gòu)介紹

    。不管你相不相信,上面的例子是完全合乎語(yǔ)法的。問(wèn)題是編譯器如何處理它?水平不高的編譯作者實(shí)際上會(huì)爭(zhēng)論這個(gè)問(wèn)題,根據(jù)最處理原則,編譯器應(yīng)當(dāng)能處理盡可能所有合法的用法。因此,上面的代碼被處理成: c
    發(fā)表于 12-23 08:15

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

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

    性能突破 | SpacemiT-X60 在 LLVM 編譯器上實(shí)現(xiàn) 16% 顯著提升

    2025年10月,在北美RISC-V峰會(huì)上,Igalia編譯器工程師Mikhail發(fā)表專(zhuān)題演講《Unlocking15%MorePerformance
    的頭像 發(fā)表于 11-21 18:04 ?8873次閱讀
    性能突破 | SpacemiT-X60 在 LLVM <b class='flag-5'>編譯器</b>上實(shí)現(xiàn) 16% 顯著提升

    開(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 ?912次閱讀
    開(kāi)源鴻蒙技術(shù)大會(huì)2025丨<b class='flag-5'>編譯器</b>與編程語(yǔ)言分論壇:語(yǔ)言驅(qū)動(dòng)系統(tǒng)創(chuàng)新,<b class='flag-5'>編譯</b>賦能生態(tài)繁榮

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

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

    Aurix Development Studio 中是否有允許在 SCR 端添加調(diào)試編譯器選項(xiàng)的功能?

    ELF 文件中的調(diào)試信息,其中沒(méi)有調(diào)試符號(hào),并且我無(wú)法調(diào)試 SCR 代碼。Aurix Development Studio 中是否有允許在 SCR 端添加調(diào)試編譯器選項(xiàng)的功能?
    發(fā)表于 07-21 06:00

    進(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ě)。它提供了類(lèi)似Python的語(yǔ)法,并通過(guò)高級(jí)抽象降低了GPU編程的復(fù)雜,同時(shí)保持了高性能。目前
    的頭像 發(fā)表于 07-15 09:04 ?1836次閱讀
    進(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編譯器是專(zhuān)門(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 ?6630次閱讀

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

    在汽車(chē)、工業(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 ?1568次閱讀

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

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

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

    高性能算力生態(tài)的建設(shè),正投入編譯器自動(dòng)向量化優(yōu)化等多項(xiàng)關(guān)鍵技術(shù),全面助力RISC-V的高性能發(fā)展。RISC-V向量設(shè)計(jì)SpacemiT在現(xiàn)代CPU中,向量支持是算力的
    的頭像 發(fā)表于 06-06 16:59 ?1223次閱讀
    RISC-V架構(gòu)下的<b class='flag-5'>編譯器</b>自動(dòng)向量化

    RVCT編譯器是否比GNU的編譯器的代碼執(zhí)行速度更快?

    使用FX3S遇到了RVCT編譯器的問(wèn)題。 1、在SDK的release note中有支持RVCT的描述, 但是在EZ USB Suite的設(shè)置中沒(méi)有找到RVCT的選項(xiàng), 請(qǐng)問(wèn)支持的具體版本
    發(fā)表于 05-08 07:49

    HighTec編譯器全面支持芯馳科技車(chē)規(guī)MCU芯片E3650

    近日,HighTec與芯馳科技共同宣布HighTec編譯器套件將全面支持芯馳新一代旗艦智控MCU-E3650芯片。此次合作,進(jìn)一步豐富了芯馳車(chē)芯產(chǎn)品的工具鏈生態(tài),雙方將攜手為客戶提供高性能、高安全的解決方案。
    的頭像 發(fā)表于 04-28 15:20 ?1787次閱讀

    TASKING編譯器全面支持紫光同芯THA6 Gen2系列產(chǎn)品

    近日,TASKING 針對(duì)Arm架構(gòu)的編譯器平臺(tái)VX-toolset for Arm迎來(lái)了全新升級(jí),最新版本VX-toolset for Arm v7.1r1已深度適配紫光同芯汽車(chē)域控芯片THA6
    的頭像 發(fā)表于 04-03 17:12 ?1315次閱讀

    HighTec編譯器全面適配紫光同芯THA6 Gen2系列產(chǎn)品

    近日,紫光同芯與全球領(lǐng)先的汽車(chē)級(jí)C/C++編譯器供應(yīng)商HighTec共同宣布,HighTec編譯器完成對(duì)紫光同芯THA6 Gen2系列產(chǎn)品的全面適配。此次合作實(shí)現(xiàn)了從指令集優(yōu)化到功能安全的全棧支持,是國(guó)產(chǎn)高端車(chē)規(guī)芯片與國(guó)際領(lǐng)先開(kāi)發(fā)工具的深度技術(shù)融合,將為全球汽車(chē)電子開(kāi)發(fā)者
    的頭像 發(fā)表于 04-02 09:42 ?1171次閱讀