簡體   English   中英

C 中變量的聲明

[英]Declaration of a variable in C

我試圖理解一個 C 程序,下面是我不理解的幾行:

static A B(float* array, int numel);
static int C(D_TYPE* array, int numel);

變量 A 是否聲明為標量而 B 是矩陣? 為什么A和B之間沒有“,”? 數組是否聲明為指針? 在第二行,第一次出現了變量“D_TYPE”。 我假設此變量是從 header 文件導入的,但我無法在任何其他包含的文件中找到它。

代碼告訴我們:

  • 在某處(代碼的其余部分, header文件等)聲明了(或應該)類型“A”。 可以是自定義數據結構 (struct) 中的任何內容,也可以是通過typedef定義的數字類型。
  • B 是一個返回“A”的 function(實際上是一個函數的原型)。 B 接受一個指向浮點數的指針(顧名思義,它是一個數組,這在 C 中幾乎是相同的東西)和一個 integer 作為參數。 當您必須將數組傳遞給 function 時,這在 C 中有點標准。
  • C 是一個函數的原型,聲明 function C 返回一個 integer。作為 arguments,它需要一個指向“D_TYPE”的指針,它又是一個在某處或應該在某處定義的類型,以及一個 88156188976
  • 在這兩種情況下都使用 static 可能是為了將這兩個函數的可見性限制在 header 文件中,這是不尋常的。

個人考慮:'a' 或 'b' 之類的名稱應該僅用作非常簡單(不是說愚蠢)情況的參數值,例如 Max(a, b) function 或類似的東西。

static AB(float* array, int numel);

static是存儲class,參考c中的存儲類

A是一個返回類型,可以從原始intchar到任何復雜的struct類型甚至指針

B是函數名稱

static int C(D_TYPE* array, int numel);

這里C是 function 並且D_TYPE是某種類型,可能在您的文件中的某些地方被typedef編輯

在您的代碼中,您有 2 個 function 聲明, BC都是函數名稱。

第一個 function 返回一個類型為static A的變量,並作為 arguments 一個float*和一個int

第二個返回類型為static int的變量,並將D_TYPE*int作為 arguments ,您可能在代碼的某處或D_TYPE文件的某處定義了 D_TYPE 。 我們不知道這個D_TYPE是什么,但它可以是一個struct 、一個#define或一個typedef ,這對於A是一樣的。

這些只是函數的聲明,在您的代碼中的某處您將擁有

 static A B(float* array, int numel){
      //some code 
 }

static int C(D_TYPE* array, int numel){
      // some code
}

這些將是兩個函數的定義

AB之間沒有,因為這只是C (programming language not the function) ,這與編寫相同

static int , C(D_TYPE* array, int numel);

在你的第二次聲明中,這當然是錯誤的

您不在此處聲明任何變量。

兩者都是 function 原型, A是 function B的返回類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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