簡體   English   中英

C typedef 定義的函數

[英]C typedef defined function

在 C 中如何命名函數? 只是名字。

typedef strlen StringLength無法編譯為: strlen does not name a type

函數指針是一個解決方案

static Integer(*StringLength)(const Byte*) = strlen;

“模擬”函數的正確方法 - 用另一個調用替換函數調用 - 是使用#define 如果您也不想擔心參數,那么只需執行以下操作:

#define StringLength strlen

函數指針也可能起作用,但它們可能被限制在某個范圍內,並且您必須正確獲取參數和返回類型。 特別是對於strlen ,正確的類型是 (C11 7.24.6.3):

size_t strlen(const char *s);

因此,正確定義的函數指針應如下所示:

size_t (*const StringLength) (const char*) = strlen;

*const使函數指針本身只讀的地方,這是一個很好的做法。

暫無
暫無

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

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