---
# System prepended metadata

title: 常見問題
tags: [NTOU CSE C++ Programming]

---

# 常見問題
###### 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**，左側面板選**編輯器 → 字型與顏色**，右側面板選**字型**分頁。
