C++ 中的未知 construct/variable 声明

unknown construct/variable declaration in c++

我是 c++ 的新手。不过,我在一般编程方面有一些经验,尤其是在 C 方面。 我有一个由其他人编写的 c++ 项目,我现在正试图理解它,它包括几个这种格式的变量声明:

 uint64_t(*const col_timestamp)(const uint8_t* col_buf);

我无法理解这意味着什么。它甚至是变量声明吗?我会理解常量指针 col_timestamp 指向类型 uint64_t 的变量和指针 col_buf 指向类型 const uint8_t 的变量的两个单独声明,如下所示:

uint64_t * const col_timestamp;
const uint8_t * col_buf;

但我不认为这就是它的意思,因为那时我看不到以这种方式编写它的理由。非常感谢帮助,因为我有点被困在这里。

如果这是一个重复的问题,我很抱歉,但我根本不知道要搜索什么,而且我想这对于精通 C++ 的人来说很容易回答。

提前致谢!

这个

uint64_t(*const col_timestamp)(const uint8_t* col_buf);

是指向函数的常量指针的声明,该函数具有 return 类型 uint64_t 和一个类型 const uint8_t *.

的参数

例如,如果您有一个声明为

的函数
uint64_t func_col_timestamp( const uint8_t *col_buf );

您可以声明并初始化一个指向函数的指针,例如

uint64_t(*const col_timestamp)(const uint8_t* col_buf) = func_col_timestamp;