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

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

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

2019-11-11 03:45:33
字體:
來源:轉載
供稿:網友

        將一個只用到標準庫函數的 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 那樣產生警告和錯誤。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 林西县| 越西县| 永康市| 鄂尔多斯市| 苏尼特左旗| 武隆县| 任丘市| 锦州市| 呼和浩特市| 隆昌县| 启东市| 武宁县| 湄潭县| 滨海县| 岳阳县| 卢龙县| 亚东县| 西充县| 霍邱县| 香河县| 宁强县| 沈阳市| 合肥市| 宁明县| 开江县| 卢氏县| 融水| 新乡县| 介休市| 南江县| 墨竹工卡县| 班戈县| 武乡县| 同德县| 措美县| 宁远县| 四会市| 缙云县| 招远市| 峨眉山市| 铁岭县|