# 常見問題 ###### tags: `NTOU CSE C++ Programming` > 教學文件和作業說明文件: https://hackmd.io/@kogiokka/ntou-cse-cpp-nav > 範例程式和範例專案:[Google Drive]( https://drive.google.com/drive/folders/100YvcqccLgY_27mJnubRSuPALrMAghJQ?usp=sharing) ## 定義 _CRT_SECURE_NO_WARNINGS → *Windows*、*Visual Studio* 當你用到C標準函式庫的函式(例如:`scanf`、`fopen`)時可能會遇到類似下列的錯誤,宣稱你使用的函式不安全: > C4996 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. ### 方法一、依照錯誤訊息更改程式碼(不建議) `*_s`函式稱為*Bound checking interfaces*,是由微軟所提議的非強制性標準,收錄在C11標準的Annex K。簡單來說,Annex K of C11本身帶來的效益很小。加上主流的編譯器中只有微軟的MSVC有相似的實作(並非完全依照標準),GCC更表示現在不會而且未來也不會支援Annex K of C11。因此使用這些函式會造成跨平台開發的障礙。即便你賭定這輩子只會在微軟的平台上寫code,也實在沒必要多記憶這些函式的使用方式,用C語言舊有的即可。 參考資料: * [Why didn't gcc (or glibc) implement _s functions?](https://stackoverflow.com/a/50724865) * [Field Experience With Annex K — Bounds Checking Interfaces](http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1967.htm) * [Do you use the TR 24731 'safe' functions? [closed]](https://stackoverflow.com/questions/372980/do-you-use-the-tr-24731-safe-functions) ### 方法二、在原始碼檔案定義巨集 將 `#define _CRT_SECURE_NO_WARNINGS` 放在所有產生錯誤的檔案頂部。 ### 方法三、修改 Visual Studio 專案屬性 進入到**專案屬性頁**。組態改為所有組態後,到**組態屬性→C/C++→前置處理器→前置處理器定義→編輯**。在最上面的文字方框換行後輸入`_CRT_SECURE_NO_WARNINGS`。 ## 設定字型 → *General* 你知道寫程式也講究字型嗎?瀏覽程式碼時應該使用等寬字型(Mono 字型),符號與字母才不會擠在一起。而且字母、符號和空白都等寬,行與行之間的每個字元才能一一對齊,程式的縮排看起來才會正確。有些字型甚至會在名稱中包含 Code 這個字,代表是寫程式專用。 寫程式常用的字型: * [Iosevka](https://typeof.net/Iosevka/) * [Fira Code](https://github.com/tonsky/FiraCode/releases) * [Source Code Pro](https://adobe-fonts.github.io/source-code-pro/) * [Cascadia Code](https://github.com/microsoft/cascadia-code/releases) * [DejaVu Sans Mono](https://dejavu-fonts.github.io/) 等寬字型和非等寬字型的比較: ![](https://i.imgur.com/76BAlcL.png) 更多字型可以到 Nerd Fonts 下載:https://www.nerdfonts.com/ ### 各大IDE設定字型的方式 * Visual Studio: 上方主選單**工具 → 選項**,在左側面板展開**環境**後點**字型和色彩**。 * Visual Studio Code: 上方主選單**檔案 → 喜好設定 → 設定**進入設定頁面。修改「Editor: Font Size」和「Editor: Font Family」兩個欄位。 * KDevelop: 上方主選單**設定 → 設定KDevelop**,左側面板選**編輯器 → 字型與顏色**,右側面板選**字型**分頁。