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

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

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

什么是“三字母詞”

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

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

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

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

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

什么是“三字母詞”

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

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

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

源代碼中的“三字母詞”,在編譯階段會被替換為“對應(yīng)的字符”。對于以“?”開頭的字符序列,如果不能與上面9個(gè)匹配,編譯器將保持原狀;一旦匹配,編譯器就會做替換。“三字母詞”例子例子1:C99標(biāo)準(zhǔn)中給出的例子
printf("Eh???/n");
相當(dāng)于:
printf("Eh/n");
例子2:一個(gè)我們?nèi)菀追傅腻e(cuò)誤(摘自《Pointers On C》)
printf("Delete file (are you really sure??):");
運(yùn)行結(jié)果為(三字母詞“??)”編譯時(shí)替換為“]”):
Delete file (are you really sure]:
而不是我們想象中的:
Delete file (are you really sure??):

最后

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

審核編輯 :李倩


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

    關(guān)注

    0

    文章

    230

    瀏覽量

    25108
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4671

    瀏覽量

    67771

原文標(biāo)題:接盤前同事項(xiàng)目,被字符“??/ ”坑慘

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

收藏 人收藏

    評論

    相關(guān)推薦

    場效應(yīng)極管的型號命名方法

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

    如何辯別場效應(yīng)管與極管

    `從型號區(qū)分 場效應(yīng)管型號如IRF......... 極管型號如國產(chǎn):3DD,國外:2S......... 場效應(yīng)管有兩種命名方法。第一種命名方法與雙極型極管,第字母J代表結(jié)型
    發(fā)表于 07-11 11:41

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

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

    開發(fā)語音產(chǎn)品時(shí)設(shè)計(jì)喚醒和命令的技巧

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

    變壓器規(guī)格型號容量功率解答

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

    M0518用串口接收數(shù)據(jù)時(shí),第一個(gè)字節(jié)是正常的,為什么后面的第二、三字節(jié)卻是亂的?

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

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

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

    三字節(jié)二進(jìn)制無符號數(shù)除以單字節(jié)二進(jìn)制數(shù)

    三字節(jié)二進(jìn)制無符號數(shù)除以單字節(jié)二進(jìn)制數(shù) 入口條件:被除數(shù)在R3、R4、R5中,除數(shù)在R7中。出口信息:OV=0 時(shí),雙字節(jié)商在R4、R5中,OV=1
    發(fā)表于 01-19 22:47 ?1767次閱讀

    場效應(yīng)極管的型號命名方法及參數(shù)

    場效應(yīng)極管的型號命名方法及參數(shù)   現(xiàn)行有兩種命名方法。第一種命名方法與雙極型極管相同,第字母J代表結(jié)型場效
    發(fā)表于 11-09 15:30 ?2337次閱讀

    場效應(yīng)極管的型號

    場效應(yīng)極管的型號   場效應(yīng)極管的型號, 現(xiàn)行有兩種命名方法。其一是與雙極型極管相同,第字母J代表結(jié)型場效應(yīng)管,O代表絕緣柵場效
    發(fā)表于 11-09 15:57 ?4718次閱讀

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

    說起對工業(yè)機(jī)器人的性能要求,無非就是“快、準(zhǔn)、狠”三字。其實(shí)這也就是對機(jī)器人關(guān)節(jié)伺服電機(jī)的要求,今天我們就來拆解一下這三字背后的含義。
    發(fā)表于 10-24 15:17 ?3864次閱讀

    LCD1602字母流動顯示C語言程序資料免費(fèi)下載

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

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

    —穿墻式;Z—支柱式;M—母線式;D—單匝貫穿式;V—結(jié)構(gòu)倒置式;J—零序接地檢測用;W—抗污穢;R—繞組裸露式 第三字母:Z—環(huán)氧樹脂澆注式;C—瓷絕緣;Q—?dú)怏w絕緣介質(zhì);W—與微機(jī)保護(hù)專用 第四字母:B—帶保護(hù)級;C—差動保護(hù);D—D級;Q—加強(qiáng)型;J—加強(qiáng)型ZG 第
    的頭像 發(fā)表于 07-12 14:57 ?1.2w次閱讀

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

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

    一文了解場效應(yīng)極管型號規(guī)則及參數(shù)含義

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