精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

什么是“三字母詞”

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 作者:STM32嵌入式開發 ? 2022-03-15 09:27 ? 次閱讀
工程師接盤了前同事的項目,進度一拖再拖。最后發現問題出現在如下代碼:
// 注釋語句 ??/a=b+c;

請注意代碼中的“??/”,就是這注釋隱藏的很深,讓項目一拖再拖。

"??/"會被編譯器當作 /,變成C語言的換行符(多行代碼連接符)。

于是這段代碼等同于// 注釋語句 a = b+c ;就會被注釋掉。

下面我們就是說說“??/”這種“三字母詞”的內容。

什么是“三字母詞”

在ANSI標準中,定義了“三字母詞”,或者成為“三聯符序列”,英文為"trigraph sequences"。目的主要是為了在一些特定的字符集中,比如一些七位代碼集中,解決一些特定字符的輸入問題。

也許是由于這些字符集我們基本上用不到,所以在大多數C語言的書籍中,我們都看不到對“三字母詞”的講解。這里資料來源于參考ANSI C99標準(即傳說中的《American National Standards Institute for Programming Languages-C》 1999年,我們習慣簡稱為“C99”)“三字母詞”主要有9個,分別為:

4ae4712c-a3ec-11ec-952b-dac502259ad0.png

源代碼中的“三字母詞”,在編譯階段會被替換為“對應的字符”。對于以“?”開頭的字符序列,如果不能與上面9個匹配,編譯器將保持原狀;一旦匹配,編譯器就會做替換。“三字母詞”例子例子1:C99標準中給出的例子
printf("Eh???/n");
相當于:
printf("Eh/n");
例子2:一個我們容易犯的錯誤(摘自《Pointers On C》)
printf("Delete file (are you really sure??):");
運行結果為(三字母詞“??)”編譯時替換為“]”):
Delete file (are you really sure]:
而不是我們想象中的:
Delete file (are you really sure??):

最后

由于編譯器的種類各樣,對ANSI C的支持也不一樣,所以可能會有些C語言編譯器不處理“三字母詞”,會將它們當做普通的字符串來處理。

審核編輯 :李倩


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

    關注

    0

    文章

    232

    瀏覽量

    25181
  • 代碼
    +關注

    關注

    30

    文章

    4753

    瀏覽量

    68369

原文標題:接盤前同事項目,被字符“??/ ”坑慘

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    場效應極管的型號命名方法

    `場效應極管的型號命名方法<br/>  現行有兩種命名方法。第一種命名方法與雙極型極管相同,第字母J代表結型場效應管,O代表絕緣柵場效應管。第二位
    發表于 04-25 15:42

    如何辯別場效應管與極管

    `從型號區分 場效應管型號如IRF......... 極管型號如國產:3DD,國外:2S......... 場效應管有兩種命名方法。第一種命名方法與雙極型極管,第字母J代表結型
    發表于 07-11 11:41

    Proteus 8*8數碼顯示管編譯26位字母和0-9數字代碼

    Proteus 8*8數碼顯示管編譯26位字母和0-9數字代碼const int row1=2;const int row2=3;const int row3=4;const int row4=5
    發表于 10-30 17:31

    開發語音產品時設計喚醒和命令的技巧

    :“吃飯啦”;生僻字和零聲應盡量避免,如“語音識別”中“語音”兩個字均為零聲;命令中的
    發表于 10-25 15:09

    變壓器規格型號容量功率解答

    變壓器的類別、結構、特征和用途,后部分代表產品的額定容量和高壓繞組的額定電壓等級,其型號中的字母所代表的含義如下: 第一位字母表示變壓器的類別,O表示降壓自耦,D表示單相;S表示相。 第二位
    發表于 05-16 15:46

    M0518用串口接收數據時,第一個字節是正常的,為什么后面的第二、三字節卻是亂的?

    M0518用串口接收數據時出問題。發送端共發送3個字節,固定第一節數據會改變,其它兩個字節的數據一直為0,可是接收端收到的數據,第一個字節是正常的,后面的第二、三字節卻是亂的。本應為0的,但是像
    發表于 08-21 07:13

    MCS51三字節無符號除法程序(ASM)

    MCS51三字節無符號除法程序(ASM) ;三字節無符號除法程序(R2R3R4/R7)=(R2)R3R4 余數R7;入口    :R2,R3,R4,R7;占用資源:ACC,B,F0;堆
    發表于 01-16 11:54 ?1207次閱讀

    三字節二進制無符號數除以單字節二進制數

    三字節二進制無符號數除以單字節二進制數 入口條件:被除數在R3、R4、R5中,除數在R7中。出口信息:OV=0 時,雙字節商在R4、R5中,OV=1
    發表于 01-19 22:47 ?1786次閱讀

    場效應極管的型號命名方法及參數

    場效應極管的型號命名方法及參數   現行有兩種命名方法。第一種命名方法與雙極型極管相同,第字母J代表結型場效
    發表于 11-09 15:30 ?2402次閱讀

    場效應極管的型號

    場效應極管的型號   場效應極管的型號, 現行有兩種命名方法。其一是與雙極型極管相同,第字母J代表結型場效應管,O代表絕緣柵場效
    發表于 11-09 15:57 ?4744次閱讀

    如何有效提高機器人伺服電機的過載能力?

    說起對工業機器人的性能要求,無非就是“快、準、狠”三字。其實這也就是對機器人關節伺服電機的要求,今天我們就來拆解一下這三字背后的含義。
    發表于 10-24 15:17 ?3893次閱讀

    LCD1602字母流動顯示C語言程序資料免費下載

    本文檔的主要內容詳細介紹的是LCD1602字母流動顯示C語言程序函數資料免費下載。
    發表于 12-24 08:00 ?12次下載
    LCD1602<b class='flag-5'>字母</b>流動顯示C語言程序資料免費下載

    電流互感器的型號表示及作用

    —穿墻式;Z—支柱式;M—母線式;D—單匝貫穿式;V—結構倒置式;J—零序接地檢測用;W—抗污穢;R—繞組裸露式 第三字母:Z—環氧樹脂澆注式;C—瓷絕緣;Q—氣體絕緣介質;W—與微機保護專用 第四字母:B—帶保護級;C—差動保護;D—D級;Q—加強型;J—加強型ZG 第
    的頭像 發表于 07-12 14:57 ?1.2w次閱讀

    C語言中的“三字母”是什么

    編譯器當作 /,變成C語言的換行符(多行代碼連接符)。于是這段代碼等同于// 注釋語句 a = b+c ;就會被注釋掉。 下面我們就是說說“??/”這種“三字母”的內容。 什么是“三字母
    的頭像 發表于 09-26 14:46 ?2581次閱讀

    一文了解場效應極管型號規則及參數含義

    場效應極管管現行有兩種命名方法。第一種命名方法,型號的第字母J代表結型場效應管,O代表絕緣柵場效應管。第二位字母代表材料,D是P型硅,反型層是N溝道;C是N型硅P溝道。例如,3D
    的頭像 發表于 04-23 10:40 ?1832次閱讀
    一文了解場效應<b class='flag-5'>三</b>極管型號規則及參數含義