簡體   English   中英

c程序功能混亂

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM