C語言 詳細講解接續符和跳脫符的使用
一、接續符的意義
C語言中的接續符()是指示編譯器行為的利器
下面看一段接續符的程式碼(程式碼1-1):
#in
clud
e <st
dio.h>
in
t m
ain(
)
{
pri
ntf
(
"Hello AutumnZe.n"
)
;
ret
urn 0;
}
可以看到上述程式碼寫的很凌亂,但是可以正常編譯執行,如下:
二、接續符的使用
- 編譯器會將反斜槓剔除,跟在反斜槓後面的字元自動接續到前一行
- 在接續單詞時,反斜槓之後不能有空格,反斜槓的下一行之前也不能有空格
- 接續符適合在定義宏程式碼塊時使用
所以說程式碼1-1可以寫成:
#include <stdio.h> int main() { printf ( "Hello AutumnZe.n" ) ; return 0; }
下面看一個接續符的應用程式:
#include<stdio.h> #define SWAP(a,b) { int temp = a; a = b; b = temp; } int main() { int a = 1; int b = 2; int c = 3; SWAP(a,b); printf("a = %d, b = %dn", a, b); SWAP(b,c); printf("b = %d, c = %dn", b, c); return 0; }
可以看到,通過接續符來進行宏定義,程式碼看起來非常優美。下面為輸出結果:
三、跳脫符的意義
C語言中的跳脫符()主要用於表示無回顯字元,也可用於表示常規字元
n | 回車換行 |
t | 橫向跳到下—製表位置 |
v | 豎向跳格 |
b | 退格 |
r | 回車 |
f | 走紙換頁 |
\ | 反斜槓符"" |
' | 單引號符 |
a | 鳴鈴 |
ddd | 1~3位八進位制數所代表的字元 |
xhh | 1~2位十六進位制數所代表的字元 |
四、跳脫符的使用
當反斜槓()作為跳脫符使用時必須出現在單引號或者雙引號之間
如下:
下面看一段跳脫字元的使用範例:
#include <stdio.h> int main() { char enter = 'n'; char* p = "141tx62"; printf("%s", p); printf("%c", enter); return 0; }
141 的十進位制表示為 97, 0x62 的十進位制表示為 98,所以列印出來的結果如下:
五、跳脫符和其他的語法混合
- 獎項:Best of Show
- 功能:處理三種檔案格式(PGM、PPM和ASCII Art)的降取樣工具,降低檔案解析度
- 作者:Google 華裔工程師 Don Hsi-Yun Yang
下面是原始碼,看起來像一個小女孩的臉:
/*
+
+
+
+
[ >i>n[t
*/ #include<stdio.h>
/*2w0,1m2,]_<n+a m+o>r>i>=>(['0n1'0)1;
*/int/**/main(int/**/n,char**m){FILE*p,*q;int A,k,a,r,i/*
#uinndcelfu_dset<rsitcdti_oa.nhs>i/_*/;char*d="P%" "dn%d40%d"/**/
"n%dn 0wb+",b[1024],y[]="yuriyurarararayuruyuri*daijiken**akkari~n**"
"/y*u*k/riin<ty(uyr)g,aur,arr[a1r2a82*y2*/u*r{uyu}riOcyurhiyua**rrar+*arayra*="
"yuruyurwiyuriyurara'rariayuruyuriyuriyu>rarararayuruy9uriyu3riyurar_aBrMaPrOaWy^?"
"*]/f]`;hvroai<dp/f*i*s/<ii(f)a{tpguat<cahfaurh(+uf)a;f}vivn+tf/g*`*w/jmaa+i`ni("/**
*/"i+k[>+b+i>++b++>l[rb";int/**/u;for(i=0;i<101;i++)y[i*2]^="~hktrvg~dmG*eoa+%squ#l2"
":(wn"1l))v?wM353{/Y;lgcGp`vedllwudvOK`cct~[|ju {stkjalor(stwvne"gt"yogYURUYURI"[
i]^y[i*2+1]^4;/*!*/p=(n>1&&(m[1][0]-'-'||m[1][1] !='