天天看點

Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型

我們的c已經漸漸的步入正軌了,基礎過去之後,就是我們的ndk和jni實戰了
指針的概念我們在前面也講了許多,也提到了多級指針的概念,那具體我們怎麼去操作呢
其實就是儲存多級的指針
Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型
我們android中常用的實體類在c中就叫結構體,那具體怎麼去使用呢,要知道c是沒有new的
大家都有java基礎,看這些應該是沒有壓力的,我們不會特别詳細的贅述,那樣也毫無意義,我們能看懂代碼就差不多了
Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型
這裡列印的長度也是因為有兩個int的關系,是以是8
我們在結構體中寫個函數,試試什麼效果?
Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型
我們會發現不行,原因是因為結構體中不能定義函數,但是我們卻需要這樣做,c也給出了解決辦法,結構體雖然不能定義函數但是可以定義函數指針
這樣我們就可以調用了,不過開發中,我們一般也不這樣寫,我們這樣寫
其實就是一個類型集合一樣,我們看‘
列印的結果
Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型
這裡,資料是30沒錯,這個4是什麼?聯合體的長度是由最長的決定的,這就是答案了,但是,這就是聯合體?no。我們繼續看
我們看結果
Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型Android For JNI(五)——C語言多級指針,結構體,聯合體,枚舉,自定義類型
i = 20了,那是因為聯合體每次隻能存放一個資料,有值的話就替換
文法都有點類似,java有枚舉,c也有,而且都是同樣的作用,你java會了,c也就會了,我們來稍微概括一下就可以了
我們列印出來是6,從0開始的
我們c中沒有布爾,其實可以自定義的
這個例子完全就是定義int,我們下篇就會講到,我們的ndk開發,我們這裡就不講的那麼詳細,我們說ndk的時候盡量詳細點 這篇先到這裡,c的基本東東我們了解一下就可以了,下節課我們就回到我們的android來