进制转换c语言代码_奇怪的C语言代码,有些函数在变量前加上(void)是什么类型转换?...
C語言的語法極其簡潔,即使是初次接觸編程語言的初學者也能很快學完它的語法。不過,C語言也是一門“靈活得過了頭”的編程語言,對于很多初學者來說,編寫C語言程序就好像拿著一堆最基本的磚塊,要修建一座大廈一樣,茫然找不到方向。
茫然找不到方向
奇怪的C語言代碼
對于初學者來說,閱讀項目源代碼是學習和鞏固C語言編程能力的一個好方法——從前輩們的一些優秀C語言項目中,我們能夠學到很多編寫程序方面的思考方式,也就是一些程序員所謂的“編程思維”,看得多了,編寫C語言程序自然就手到擒來了。
不過雖然C語言的語法簡單,但是我們總會看到一些令人迷惑的代碼,例如下面這個函數,它來自某個開源項目,為了討論主題,我將一些不相關的細節略去了:
void *fun(void *ud, void *ptr, int size){ (void) ud; (void) size; // 其他代碼,未用到 ud 和 size 參數 ...}fun() 函數中省略掉的代碼沒有使用到 ud 和 size 參數,這里有兩個問題:一是既然用不到這兩個參數,為什么不刪去它們呢?再就是兩個參數前的 (void) 類型轉換有什么用呢?
為什么不刪除多余參數呢?(void) 類型轉換有什么用呢?
首先考慮第一個問題
前文提到 fun() 函數來自一個C語言程序開源項目,該項目比較復雜,但是我們知道再復雜的程序項目也是一行一行代碼敲出來的,而且,在后續的開發中,可能會修改之前的設計。明白這一點,要回答第一個問題就簡單了。
可能在之前的設計中,fun() 函數是用到了 ud 和 size 參數的,只是后來的設計發現 fun() 函數不必使用這兩個參數,但是發現整個C語言項目由大量使用 fun() 函數的代碼。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的进制转换c语言代码_奇怪的C语言代码,有些函数在变量前加上(void)是什么类型转换?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据图表与分析图_几种可视化数据分析图表
- 下一篇: ppt图片丢失_041 职场PPT实战: