在進行FANUC開發的時候我們可以看到Focas中的函數返回的數據大部分都是FANUC自定義的數據類型,比如方法cnc_rdnodeinfo()中返回的是ODBNODE結構數據,其中定義了多種類型的數據。當用戶調用該方法時即可通過ODBNODE實體中獲取對應類型的數據。
? 那么Focas在哪里定義了這些數據結構體呢,在開發文檔中有個Fwlib32.h頭文件,Focas將這些數據結構體集中定義在Fwlib32.h中,再加上對功能函數、數據接口的聲明 ,所以我們在開發FANUC項目時都必須引入Fwlib32.h文件和Fwlib32.lib文件。
struct結構體類型在C++中定義一個結構體還是很簡單的,通過struct就來定義結構體類型。當我們需要使用到Dome時可以直接通過Dome來聲明變量,比如Dome dome;,通過dome.a即可對該變量進行賦值或提取了。
我們也可以為其申明定義結構體變量如Test,這種形式當我們定義了Dome結構體類型時便直接完成了初始化操作,使用時可以直接通過Test.a對該變量進行賦值或提取。這種方式雖然使用起來比較方便,但由于創建時就初始化變量了,因此會一直占用空間的。
typedeftypedef為C語言中的關鍵字,為數據類型定義一個新名字(也叫別名,原名依舊有效)。可以是基本類型名稱、數組類型名稱、指針類型名稱、枚舉型名稱以及自定義的struct結構體等數據類型名稱,但是不能與auto、extern、static、register等關鍵字出現在同一個表達式中。當我們為結構體定義了typedef屬性時,我們就可以通過該別名來定義結構體中的變量。
為什么要用typedef struct前面我們看到C++中定義struct時很簡單,只需在調用時初始化該變量即可。但是在C中調用有時需要通過struct 結構名 對象名來申明結構體對象,使用起來不夠便捷。為了兼容C調用我們可以統一通過typedef來定義結構體,這樣不管是C或C++都可以通過別名來調用。
多別名定義在申明別名時我們可以為結構體同時定義多個別名,調用時用任何一個別名都可以使用,這個邏輯相當于對前一個別名再進行別名定義。通過typedef與結構體配合可以簡化復雜類型的定義,使結構體的表達更加簡潔,更具兼容性。
更多C/C++實戰技巧可參考專欄:C/C++實戰系列
本文發布于:2023-02-28 21:08:00,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/1677729423104548.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:CSCANF(cscan訪問順序).doc
本文 PDF 下載地址:CSCANF(cscan訪問順序).pdf
| 留言與評論(共有 0 條評論) |