---
# System prepended metadata

title: C語言的細節

---

# C語言的細節
## 跳脫字元使用例
```C=
#include <stdio.h>

int main(){
    printf("一行\n");
    printf("二行\n");
    printf("三行\n");
}
```
- 換行的方法`\n`
- 工程式寫法：想好「算法」再寫，有效率
## C基本文法
- 大小寫是不同 忽略可能導致：
    - 編譯出錯
    - 連結出錯
    - 執行出錯
- 空行不管幾個 都只等於一個空格
    - ~~空格在printf中會按照輸入次數呈現~~
    - 所以可以利用這個特性編排程式碼
        - 通常空4~5格
            - ...好像等於剛好按一次Tab?
- 指令結束加`;`
- 四種括號前後有空格沒差
## 大括號的位置問題
Linux派
```C=
int main(){
}
```
Windows派
```C=
int main()
{
}
```
## 跳脫序列的...
- 反斜線無法顯示
    - 編譯器提示：未知的跳脫字元
    - `\\`可以顯示\
    - `\"`可以顯示"
- 編譯的錯誤提示：
    - notice
    - warning
    - error
## 回家作業
- 印猴子 素材：
```
            __,__
   .--.  .-"     "-.  .--.
  / .. \/  .-. .-.  \/ .. \
 | |  '|  /   Y   \  |'  | |
 | \   \  \ 0 | 0 /  /   / |
  \ '- ,\.-"`` ``"-./, -' /
   `'-' /_   ^ ^   _\ '-'`
       |  \._   _./  |
       \   \ `~` /   /
jgs     '._ '-=-' _.'
           '~---~'
```
- 檔名`p9_homework_monkey`
- 猴子作業的重點
    - 使用跳脫讓`\`跟`"`印出
        - 新版C語言`'`功用不同於`"`，所以無需跳脫
        - [補充資料](https://ithelp.ithome.com.tw/articles/10282210)
    - VS code記得存檔再跑終端
        - 終端讀的是原檔，所以要記得按存檔，除非用Code runner這種附加功能
        - 正確來說是回到家使用家中電腦環境建設的問題，倒不是作業本身問題
        - 解決方案：[影片](https://www.youtube.com/watch?v=1dX-SytgRs4)
            - 按VS code右上角▶方能解決
            - ==其實這是一件很弔詭的事情==
                - 一開始印猴子一直失敗以為是有錯誤![](https://i.imgur.com/cmIw2eD.png)

                    - 但用線上編譯器沒有錯誤
                    - [其他人也遇過的相似怪問題](https://dotblogs.com.tw/timchang/2012/11/21/84955)
                - 再撰寫一個Hello程式測試環境時便出現類似下方的訊息，並用上個影片的方法解決![](https://i.imgur.com/nhG1jdY.png)
                    - 關鍵字是Winmain Bug
                        - `int argc,char const *argv[]`
                            - 指標
- 補充
    - VS Code終端機下`打關鍵字+Tab`可以自動填上當前檔案
    - VS Code選住兩個檔案右鍵選比較，可以看出兩個檔案的差別