以下C ++语句是什么意思

尼卡格拉

我今天在C ++采访测试中看到一条声明:

int (*(*fb)(int, char*))[2];

我不知道这个声明意味着什么。它看起来很像函数指针,但是第一个星号和方括号破坏了所有内容。

Visual Studiofb按以下方式解码的类型int[2] * (int, char *) *,看起来仍然有些神秘。

如果我们简化声明,那么一切看起来就清晰了

int(*(*fa)(int, char*));

int* func(int, char*) 
{ 
    return 0; 
}

// now we can assign func to fa
fa = func;

有任何想法吗?

莱姆

fb 是以下签名的函数指针:

  • 该函数有两个参数:intchar*
  • 该函数返回一个指向2的数组的指针,该数组int的类型为int(*)[2]

通常,由于函数指针,数组指针和类似内容的神秘语法,您应该使用typedef或类型别名(新的using-syntax)使其逐步清晰:

using int2 = int[2];
using int2ptr = int2*;
using fb = int2ptr(int, char*);

证明

另外,可以考虑返回astd::vectorstd::array;而不是返回数组您可以考虑std::string不使用传递char指针,而不是使用函数指针std::function所有这些都是“罐子”,因为每种“原始类型”都有其存在的原因,但是原因非常有限。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C语句中的$$是什么意思

来自分类Dev

以下链接语句在JavaScript中是什么意思?

来自分类Dev

C ++中的语句new employee * [num]是什么意思

来自分类Dev

在c if语句中,“ =”而不是“ ==”是什么意思?

来自分类Dev

以下C ++代码行是什么意思?

来自分类Dev

-c是什么意思?

来自分类Dev

-c是什么意思?

来自分类Dev

以下javascript语法是什么意思?

来自分类Dev

以下结构定义是什么意思?

来自分类Dev

以下声明是什么意思?

来自分类Dev

以下javascript语法是什么意思?

来自分类Dev

以下内核消息是什么意思?

来自分类Dev

以下dmesg输出是什么意思?

来自分类Dev

以下smali术语是什么意思?

来自分类Dev

以下几行是什么意思?

来自分类Dev

以下几行代码是什么意思

来自分类Dev

C ++语法:return语句,在“ template”之后带有空格;这是什么意思

来自分类Dev

“ C#实现词法闭包”语句中的“词法”是什么意思?

来自分类Dev

维基百科C迭代版本的合并方式中的if语句是什么意思?

来自分类Dev

这个 C++ 语句是什么意思?BaseWindow() : m_hwnd(NULL) { }

来自分类Dev

[&]在C ++中是什么意思

来自分类Dev

**在C中是什么意思?

来自分类Dev

C中的“流”是什么意思?

来自分类Dev

**在C ++中是什么意思?

来自分类Dev

C ++中的代码是什么意思?

来自分类Dev

就C#而言是什么意思?

来自分类Dev

*(int *)在C ++中是什么意思?

来自分类Dev

(void)在c ++中是什么意思?

来自分类Dev

C中的“ a ## b”是什么意思?