日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

没事研究下C#虚拟光驱,有所收获!

發(fā)布時間:2025/3/15 C# 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 没事研究下C#虚拟光驱,有所收获! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

沒事研究下C#虛擬光驅(qū),有所收獲!它被定義了,但它卻被定義為未定義——有趣的宏定義 前些日子為了弄清楚宏定義寫了個小程序,忽然發(fā)現(xiàn)將標識符定義為空和將標識符定義為未定義完全是兩碼事…虛擬光驅(qū)…然后發(fā)現(xiàn)原來宏定義中還有一種狀態(tài)叫“未定義”。下面就是那個小程序以及簡單的分析,然后通過這個程序可以充分體驗一下這個“未定義”的狀態(tài),體驗一下什么叫“它被定義了,但它卻被定義為未定義”。
程序源碼:

view sourceprint?#include<stdio.h>?

??

int main()?

{?

#if (A == B)?

printf("define A = B/n");?

#elif (A == C)?

printf("define A = C/n");?

#else?

printf("nothing is defined!/n");?

#endif?

return 0;?

}


然后下面是編譯命令和運行結(jié)果:
[root@localhost test]# gcc definetest.c -o definetest
[root@localhost test]# ./definetest
define A = B
[root@localhost test]# gcc definetest.c -o definetest -DA
[root@localhost test]# ./definetest
nothing is defined!
[root@localhost test]# gcc definetest.c -o definetest -DA=C
[root@localhost test]# ./definetest
define A = B
[root@localhost test]# gcc definetest.c -o definetest -DA=C -DC
[root@localhost test]# ./definetest
define A = C
[root@localhost test]# gcc definetest.c -o definetest -DA=C -DB
[root@localhost test]# ./definetest
define A = C

首先簡單介紹一下gcc編譯時-D的意思,-D其實就是在預(yù)處理時進行宏定義,和在代碼中用#define實現(xiàn)的是一樣的。而D后面緊跟的就是宏定義的內(nèi)容:-DA,相當于在代碼中#define A;而-DA=C就相當于在代碼中的#define A C。
首先第一種,也是最簡單的編譯方式,什么都沒有定義。但是卻在第一個分支執(zhí)行了,這是為什么呢?因為這時A沒有被定義過,B也沒有被定義過,于是未定義等于未定義,于是在第一個分支中就執(zhí)行了。
那這時候就會考慮怎么才能跑到第三個分支去呢?第二種編譯方式基本算是最簡單的解決方法了,宏定義A為空,然后A被定義為空,而B和C仍是未定義,于是就會跑到第三個分支。
第三種情況應(yīng)該是最有意思的一種情況,大家一般都會認為程序應(yīng)該會執(zhí)行到第二個分支,打印出define A = C,但是卻仍在第一分支就實現(xiàn)了。其實這就是那種“它被定義了,但它卻被定義為沒定義”的情況,將A定義為C,但是C卻是“未定義”,于是A就變成了“未定義”,而B本身也是“未定義”,所以A就和B一樣了,所以在第一分支就實現(xiàn)了。
?然后這個時候如果把C定義一下,或者將B定義一下,只要保證兩者不都是“未定義”,就會進入到程序的第二分支了。分別對應(yīng)第四和第五種編譯方式。

總結(jié)

以上是生活随笔為你收集整理的没事研究下C#虚拟光驱,有所收获!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。