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;
我是 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;