gpt4 book ai didi

c - 这个 C 函数是什么意思?函数指针?

转载 作者:行者123 更新时间:2023-12-05 09:34:02 26 4
gpt4 key购买 nike

我想知道这个 C 函数到底是什么意思?

typedef uint32_t (*test) ( void );

最佳答案

基本上是这样写的:

                     test                  -- test is
typedef test -- a typedef name (alias) for the type
typedef *test -- pointer to
typedef (*test) ( ) -- a function taking
typedef (*test) ( void ) -- no parameters
typedef uint32_t (*test) ( void ); -- returning uint32_t

因此 test 是类型“指向不带参数并返回 uint32_t 的函数的指针的别名(uint32_t (* )(无效)).

所以如果你有这样的函数

uint32_t foo(void) { return some_value; }

然后您可以使用任一方法创建指向该函数的指针

uint32_t (*ptr)(void) = foo;

test ptr = foo;

作为风格问题,在 typedef1 中隐藏类型的指针通常不是一个好主意;最好像这样创建一个 typedef

typedef uint32_t test(void); // test is a typedef name for "function taking no parameters
// and returning uint32_t

然后创建指针为

test *ptr;

<支持>
  1. 除非您准备编写一个完整的抽象层来处理所有指针操作并向用户隐藏它们,在这种情况下请发疯。

关于c - 这个 C 函数是什么意思?函数指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66824631/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com