[英]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 文件導入的,但我無法在任何其他包含的文件中找到它。
代碼告訴我們:
個人考慮:'a' 或 'b' 之類的名稱應該僅用作非常簡單(不是說愚蠢)情況的參數值,例如 Max(a, b) function 或類似的東西。
static AB(float* array, int numel);
static
是存儲class,參考c中的存儲類
A
是一個返回類型,可以從原始int
、 char
到任何復雜的struct
類型甚至指針
B
是函數名稱
static int C(D_TYPE* array, int numel);
這里C
是 function 並且D_TYPE
是某種類型,可能在您的文件中的某些地方被typedef
編輯
在您的代碼中,您有 2 個 function 聲明, B
和C
都是函數名稱。
第一個 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
}
這些將是兩個函數的定義
A
和B
之間沒有,
因為這只是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.