在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

現代編譯器的可讀性勝過調試

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Colin Walls ? 2022-07-01 09:10 ? 次閱讀

編寫代碼時,您的首要任務應該是可讀性。大量時間花在調試和維護代碼上,通常遠遠超過最初編寫代碼所花費的時間。因此,使該過程高效是必不可少的。考慮到未來人類讀者的需求(可能是你,當然!)比試圖讓代碼“高效”更重要——這項工作主要可以留給現代編譯器。

這種考慮意味著代碼應該非常仔細地格式化和對齊,并且語言結構應該盡可能簡單和透明。有許多已發布的指南可以幫助解決這些問題。但是,創建可讀代碼并不止于此。

當你編譯代碼時,編程語言被翻譯成機器指令。這是顯而易見的。然而,編譯器實際接收的是一個字符流;有些是實際代碼,但可能有一些不打算翻譯的塊,其他文本可能僅供人類使用:

文檔——代碼中的注釋

臨時刪除的代碼——調試過程的一部分,但它可能會持續存在

特殊調試/跟蹤代碼

每一個的實現都會對可讀性產生一些影響。

文檔

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

int number; // input count

char c; // single character buffer

char buffer[99]; // the input line

很難跟上。對齊就是一切:

int number; // input count

char c; // single character buffer

char buffer[99]; // the input line

并且不要使用標簽;它們不是便攜式的。

臨時代碼刪除

在軟件開發過程中,想要對編譯器“隱藏”部分代碼——將其關閉——并不少見。執行此操作的傳統方法是“注釋掉”——在代碼前加/* ,在后加*/。雖然做起來很快,但它很容易失效,因為編譯器不一定支持注釋嵌套。較新的//表示法稍微好一點,但應用和刪除很繁瑣,并且仍然容易出錯。

實現此結果的最佳方法是使用預處理器指令,因此:

#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.

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19382

    瀏覽量

    230478
  • 編譯器
    +關注

    關注

    1

    文章

    1638

    瀏覽量

    49197
收藏 人收藏

    評論

    相關推薦

    Triton編譯器與GPU編程的結合應用

    Triton編譯器簡介 Triton編譯器是一種針對并行計算優化的編譯器,它能夠自動將高級語言代碼轉換為針對特定硬件優化的低級代碼。Triton編譯器的核心優勢在于其能夠識別并行模式,
    的頭像 發表于 12-25 09:13 ?274次閱讀

    Triton編譯器如何提升編程效率

    現代軟件開發中,編譯器扮演著至關重要的角色。它們不僅將高級語言代碼轉換為機器可執行的代碼,還通過各種優化技術提升程序的性能。Triton 編譯器作為一種先進的編譯器,通過多種方式提升
    的頭像 發表于 12-25 09:12 ?273次閱讀

    Triton編譯器在高性能計算中的應用

    高性能計算(High-Performance Computing,HPC)是現代科學研究和工程計算中不可或缺的一部分。隨著計算需求的不斷增長,對計算資源的要求也越來越高。Triton編譯器作為一種
    的頭像 發表于 12-25 09:11 ?281次閱讀

    Triton編譯器的優化技巧

    現代計算環境中,編譯器的性能對于軟件的運行效率至關重要。Triton 編譯器作為一個先進的編譯器框架,提供了一系列的優化技術,以確保生成的代碼既高效又適應不同的硬件架構。 1. 指令
    的頭像 發表于 12-25 09:09 ?262次閱讀

    Triton編譯器的優勢與劣勢分析

    Triton編譯器作為一種新興的深度學習編譯器,具有一系列顯著的優勢,同時也存在一些潛在的劣勢。以下是對Triton編譯器優勢與劣勢的分析: 優勢 高效性能優化 : Triton編譯器
    的頭像 發表于 12-25 09:07 ?301次閱讀

    Triton編譯器在機器學習中的應用

    1. Triton編譯器概述 Triton編譯器是NVIDIA Triton推理服務平臺的一部分,它負責將深度學習模型轉換為優化的格式,以便在NVIDIA GPU上高效運行。Triton編譯器支持
    的頭像 發表于 12-24 18:13 ?441次閱讀

    Triton編譯器支持的編程語言

    Triton編譯器支持的編程語言主要包括以下幾種: 一、主要編程語言 Python :Triton編譯器通過Python接口提供了對Triton語言和編譯器的訪問,使得用戶可以在Python環境中
    的頭像 發表于 12-24 17:33 ?393次閱讀

    Triton編譯器與其他編譯器的比較

    Triton編譯器與其他編譯器的比較主要體現在以下幾個方面: 一、定位與目標 Triton編譯器 : 定位:專注于深度學習中最核心、最耗時的張量運算的優化。 目標:提供一個高度抽象、靈活、高效
    的頭像 發表于 12-24 17:25 ?410次閱讀

    Triton編譯器功能介紹 Triton編譯器使用教程

    Triton 是一個開源的編譯器前端,它支持多種編程語言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一個可擴展和可定制的編譯器框架,允許開發者添加新的編程語言特性和優化技術
    的頭像 發表于 12-24 17:23 ?488次閱讀

    Keil編譯器優化方法

    我們都知道,代碼是可以通過編譯器優化的,有的時候,為了提高運行速度或者減少代碼尺寸,會開啟優化選項。
    的頭像 發表于 10-23 16:35 ?696次閱讀
    Keil<b class='flag-5'>編譯器</b>優化方法

    深入淺出系列之代碼可讀性

    ”,這是對我最大的鼓勵。 一、老生常談,到底啥是可讀性 一句話:見名知其義。有人說好的代碼必然有清晰完整的注釋,我不否認;也有人說代碼即注釋,是代碼簡潔之道的最高境界,我也不否認。但我都不完全接受,如果照搬前者,有
    的頭像 發表于 08-09 16:00 ?279次閱讀

    AI編譯器技術剖析

    隨著人工智能技術的飛速發展,AI編譯器作為一種新興的編譯技術逐漸進入人們的視野。AI編譯器不僅具備傳統編譯器的功能,如將高級語言編寫的源代碼轉換為機器可執行的代碼,還融入了人工智能技術
    的頭像 發表于 07-17 18:28 ?1694次閱讀

    人工智能編譯器與傳統編譯器的區別

    人工智能編譯器(AI編譯器)與傳統編譯器在多個方面存在顯著的差異。這些差異主要體現在設計目標、功能特性、優化策略、適用范圍以及技術復雜等方面。以下是對兩者區別的詳細探討,旨在全面解析
    的頭像 發表于 07-17 18:19 ?2008次閱讀

    Meta發布基于Code Llama的LLM編譯器

    近日,科技巨頭Meta在其X平臺上正式宣布推出了一款革命的LLM編譯器,這一模型家族基于Meta Code Llama構建,并融合了先進的代碼優化和編譯器功能。LLM編譯器的推出,標
    的頭像 發表于 06-29 17:54 ?1532次閱讀

    QT開發學習筆記1(安裝交叉編譯器

    QT安裝交叉編譯器
    的頭像 發表于 02-18 10:02 ?1079次閱讀
    QT開發學習筆記1(安裝交叉<b class='flag-5'>編譯器</b>)
    主站蜘蛛池模板: 91免费网站在线看入口黄| 欧美黑人巨大xxx猛交| 午夜影视网| 天天摸夜夜摸爽爽狠狠婷婷97| 天天天综合| re99热| 久久精品国产免费中文| 国产1卡2卡三卡四卡网站| 欧美激情啪啪| 国产黄色在线| 美女扒开尿口给男人捅| 一级日本大片免费观看视频| 午夜女上男下xx00xx00动态| 色狠狠成人综合网| 久久久鲁| 又粗又爽又色男女乱淫播放男女| 国产日韩精品欧美一区色| 大尺度视频在线| 天天做天天看夜夜爽毛片| 九九热九九| 永久免费看黄| 男操女视频网站| 午夜看黄| 日本一卡二卡3卡四卡网站精品| 初恋视频黄色| 国产aaaaa一级毛片| 特级毛片女人18毛片| 一级毛片一片毛| 色老头久久久久| 狠狠色丁香婷婷综合久久片| 激情文学综合网| 亚洲看片| 亚洲小便| 一级毛片 在线播放| 欧美一区二区三区成人看不卡| 三级视频网站在线观看| 久久五月天婷婷| 五月天婷婷影院| 黄色大片在线视频| 天天色天天射综合网| 国产综合色在线视频区色吧图片|