淺談typedef與define
今天看了一下書,感覺typedef確實不錯,相比define,不過實際上是各有千秋的。
現在就來看看兩者各自的優缺點吧。
一:typedef與define
(1)define是預處理指令,在編譯預處理時進行簡單的替換,不做正確性的建和擦,不管含義是否正確照樣進行替換,只有在編譯已被展開的源程式時才會發現可能的錯誤並出錯。
(2)typedef作用時宣告一個新的型別名代替已有的型別名,是在編譯時處理的。它在自己的作用域內給一個已經存在的型別一個別名,他是語言編譯過程的一部分,並不實際分配記憶體空間
二:static:
在c語言中,它有三個主要的作用:
在一個函式體中,一個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。
在模組內(在函式體外),一個被宣告為靜態的變數可以被模組內所用函式訪問,但不能被模組外其他函式訪問。它是一個本地的全域性變數
在模組內,一個被宣告的靜態的函式只能被這一模組內的其他函式呼叫,那就是,這個函式被限制在宣告它的模組的本地範圍中使用
總結一下,就是它起到限制變數的作用域和設定變數的儲存域的作用。
三:const
const意味著只讀:
const int s; int const a;這兩個作用是一樣的。
const int *a;a 是一個指標,這個指標指向常整數型,指標可變,但是整形數不可變。
int * const a;a是一個指向整數型的常指標,也就是指標不可變,而整數是可以變的。
合理使用const可以很自然地保護那些不希望被改變的引數,減少debug
而且將變數宣告為常量就是為了告訴使用者這個引數的應用目的
能夠產生更加緊湊的程式碼
相關文章
- #define 與 typedef
- typedef與define的區別
- define與typedef區別與聯絡
- define和typedef的區別
- #define、const、typedef的差別
- #define巨集與列舉以及typedef關鍵字的區別
- typedef和define具體的詳細區別
- VirtualDOM與DomDiff淺談
- 淺談ActiveMQ與使用MQ
- 淺談JVM與垃圾回收JVM
- 淺談px,em與remREM
- 淺談前端MVC與MVVC模式前端MVC模式
- 淺談貪心與動歸
- 淺談SOAPWebserver與RestfulWebserver區別WebServerREST
- 淺談src與href的區別
- 淺談VueUse設計與實現Vue
- 淺談DDos攻擊與防禦
- 淺談前端與網路請求前端
- 淺談RxJava與2.0的新特性RxJava
- 淺談框架與模式的關係框架模式
- GCD使用經驗與技巧淺談GC
- 《參禪與悟道》——淺談人生 (轉)
- 淺淺談ReduxRedux
- php中defined與define()函式PHP函式
- typedef用法
- 淺談JavaScript的防抖與節流JavaScript
- 淺談 Dart 類與類的基本方法Dart
- 淺談網路-閘道器與路由路由
- 淺談js的this指向與解決思路JS
- 淺談hdfs架構與資料流架構
- 【JavaScript】淺談前端模組化與元件化JavaScript前端元件化
- 淺談中介軟體漏洞與防護
- 淺談微信小程式登陸與Oauth微信小程式OAuth
- 淺談前端線上部署與運維前端運維
- oracle sql trace與10046淺談OracleSQL
- 淺談超快讀與超快寫
- 淺淺淺談JavaScript作用域JavaScript
- Python3之淺談----深拷貝與淺拷貝Python