標記 (程式語言)

程式語言中的標記（）是加在源代碼中識別用的字串，大部份的語言都將標記視為標識符，後面要加一個冒號作為識別。

在許多高階語言中標記會用來標示Goto指令的終點。在組合語言中標記則是用來標示跳躍指令（如JMP）的終點。也時也會利用標記來作為程式的分段。Fortran及BASIC語言支援數字型的標記，也就是行號。標記也在调试時用來識別已編譯過程式的進入點。

 用途 
 組合語言 
在組合語言中要實現流程控制時，往往需要讓程式計數器前移或後移一段距離（例如前移5個位元），移動的距離會因程式碼變動而不同，例如在某處增加（或刪除）一行程式碼，程式中所有有越過更改程式碼的前移（及後移）指令都要重新計算需移動的距離。這樣的程式在閱讀時需經過計算才能知道任何跳躍指令的終點，程式的可讀性顯然不佳。

標記可以避免上述的問題。可以在程式任何需要的位置加上不同標記，跳躍指令直接指定其終點對應的標記，不需用人工計算程式計數器移動的距離。而且還可以使用有意義，可讀性高的標記，更加提昇程式的可讀性。

以下是一段使用標記的組合語言程式：
 mov $v0, 0
 MyLabel:                   ; 此處為一個名稱為MyLabel的標記
   add  $v0, $s0            ; 迴圈本體中的程式
   subi $t0, 1              ; 迴圈本體中的程式
 bne $t0, $zero, MyLabel    ; 條件跳躍至MyLabel標記處
                            ; 若指定條件不滿足，繼續執行後續的程式

 高階語言 
有些高階語言（例如C語言）允許在程式中加上標記，標示像Goto等直接跳躍指令的終點。不過這類指令若應用不當，很容易使得程式變得複雜而難以理解，即所謂的麵條式代碼。

現代的高階語言提供許多結構化控制流程的指令，可以取代標記及直接跳躍指令。所以許多程式語言已不支援標記，或者只在極少數的場合下使用（如C#中的case）。

另一種可以取代標記及直接跳躍指令的是異常處理，一般會使用try和catch的指令。

 參照 
 行號 (程式語言)


 參考資料 

Category:源代码
Category:控制流程