国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

源程序采用UNICODE編碼時GCC編譯器會發出null character(s) ignored警告

2019-11-11 03:20:42
字體:
來源:轉載
供稿:網友

        將一個只用到標準庫函數的 C 程序在 Windows 平臺上用 VS 2010 編譯,沒有出任何問題。再將它放到 64 位 CentOS 6.8 下,用 GCC 編譯它,接收到一大堆警告和錯誤報告,如下圖:

        其中大部分是“null character(s) ignored”警告,還有一些像stray '***' 這樣的錯誤。經過調查發現,原因在于在 Windows 平臺上用文本編輯器保存這個 C 程序時,因為在其中用中文寫了一些注釋,保存時將編碼設置為了 UNICODE,但是 GCC 編譯器不能識別 UNICODE 編碼格式的源文件,就會產生如上圖所示的警告和錯誤。(注意: UNICODE 本身是一個很大的概念,包含 UTF-8、UTF-16、UTF32。但 Windows 平臺上的 UNICODE 實質上是指 UTF-16 編碼,linux 平臺上通常采用 UTF-8 編碼。)

        由于只是想讓這個 C 程序在 CentOS 6.8 上能執行,并不需要在 Linux 下編輯它,所以最簡單的解決方法就是在 Windows 平臺上用文本編輯器(比如 Notepad、Notepad++ 等)將這個 C 程序的源文件轉換成 ASCII 編碼或 UTF-8 編碼。從 Windows 7 開始,自帶的記事本 Notepad 在“另存為”時都允許用戶選擇編碼方式。如下圖所示:

        于是只需用記事本將原來的 C 程序另外保存一份,編碼選擇 ASNI 或 UTF-8 都可以,接下來將新保存的文件拿到 CentOS 6.8 下用 GCC 編譯。此時程序就能順利地被編譯,GCC 不再報告警告和錯誤了。

        Windows 下的 Visual Studio 能夠很好地自動識別源程序的編碼方式,經過實驗后發現:將上面的 C 程序文件以 ANSI、Unicode、Unicode big endian、UTF-8 四種編碼方式分別保存,在 VS 2010 中分別編譯,都能夠成功編譯,不會像 GCC 那樣產生警告和錯誤。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庆安县| 夹江县| 镇安县| 马关县| 灵川县| 镇坪县| 常山县| 新丰县| 兴隆县| 会泽县| 昔阳县| 樟树市| 甘肃省| 通许县| 武平县| 侯马市| 若尔盖县| 定安县| 同江市| 江达县| 灌阳县| 贵州省| 博湖县| 芜湖市| 子洲县| 文安县| 牙克石市| 隆林| 柳林县| 彝良县| 晋宁县| 六枝特区| 平远县| 利津县| 调兵山市| 科技| 江阴市| 高唐县| 甘谷县| 申扎县| 新兴县|