[英]c program functionality confusion
我是c編程的新手,我有以下程序去debub。 問題是,我不知道這些代碼行甚至意味着什么。 從語法的角度/功能來看,有人能指出我們的意思嗎? 代碼做了什么? 代碼使用MPLab C30 v3.23或更高版本編譯。
fractional abcCoefficient[3] __attribute__ ((space(xmemory))); /*ABC Coefficients loaded from X memory*/
fractional controlHistory[3] __attribute__ ((space(ymemory))); /*Control History loaded from Y memory*/
fractional kCoeffs[] = {0,0,0}; /*Kp,Ki,and Kd gains array initialized to zero*/
這些行聲明了變量; 沒有與您粘貼的內容相關聯的執行代碼。
這段代碼的環境理解fractional
是一種類型; 無論是在同一個文件中還是在該文件包含的頭文件中(直接或間接), fractional
都將使用typedef
語句定義。 在您的示例中,每個變量都是三個fractional
類型的數組。
__attribute__ ((space(?memory)))
條目是編譯器打算構建的屬性,它理解並影響有關如何管理變量的內容。 您將需要查閱您正在使用的平台的編譯器文檔。
請參閱此頁面以了解gcc中的__attribute__
__(但是,我沒有看到space(xmemory)
選項,如果它不是gcc,請查閱編譯器的文檔。如果是,則space()
可以是宏)。 fractional
也是一個自定義類型,搜索小數的typedef
定義。
基本上,代碼創建了一堆類型為fractional
的數組。 前兩個使用gcc的屬性擴展(或者你正在使用的任何編譯器),最后一個在每個位置初始化為0。
看起來“分數”是一種自定義類型,在某處尋找它的typedef,它應該讓你開始看你正在看的東西。 我希望這些是變量聲明。
宏是使用“#define”預處理程序指令建立的,因此您可以在某處查找“#define space(x)code”來告訴您它的作用。 祝好運。
前兩行聲明了每個包含三個元素的數組。 類型是fractional
,可能是一個typedef(帶分子和分母的結構?)。 評論表明數據存儲在另一個存儲空間中,也許是某種Flash。
因此該程序似乎適用於嵌入式系統。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.