typedef相关内容

在 typedef 和 new 中使用 typename 关键字

考虑这个代码, template结构体示例{类型名称 T::X *x;//声明指向T的X的指针}; 在上面的代码中,关键字typename是编译器所必需的,以便它可以在模板中消除嵌套类型和嵌套值之间的歧义.这意味着,在没有 typename 关键字的情况下,编译器会将其解释为 T::X 与 x 的乘法, T::X *x;//将 T::X 与 x 相乘 因此在可能出现歧义的情况下,关键字ty ..
发布时间:2021-12-13 19:03:14 C/C++开发

不完整类型的无效使用

我试图在我的项目中使用来自子类的 typedef,我已经在下面的示例中隔离了我的问题. 有人知道我哪里出错了吗? templateA类{上市://为什么不喜欢这个?void action(typename Subclass::mytype var) {(static_cast(this))->do_action(var);}};B类:公共A{上市:typedef int mytype ..
发布时间:2021-12-13 18:53:19 C/C++开发

C++ 静态多态性 (CRTP) 和使用派生类的 typedef

我阅读了 维基百科文章,内容涉及 C++ 中奇怪的重复模板模式,用于执行静态(阅读:编译时)多态性.我想概括它,以便我可以根据派生类型更改函数的返回类型.(这似乎应该是可能的,因为基类型知道模板参数的派生类型).不幸的是,以下代码无法使用 MSVC 2010 进行编译(我现在无法轻松访问 gcc,所以我还没有尝试过).有人知道为什么吗? 模板类基{上市:typedef typenamederiv ..
发布时间:2021-12-13 18:22:21 C/C++开发

函数指针的解释

我在理解某些结合函数指针和函数声明的 C++ 语法时遇到了问题,即: 通常,当我们想声明一种函数时,我们会做这样的事情: typedef void(*functionPtr)(int); 这对我来说很好.从现在起 functionPtr 是一个类型,它代表指向函数的指针,该函数返回 void 并以 int 值作为参数. 我们可以这样使用: typedef void(*functi ..
发布时间:2021-12-13 13:34:59 C/C++开发

typedef'ing 指针类型被认为是不好的做法吗?

可能的重复: Typedef 指针是个好主意吗? 我在我使用过的许多 API 中都看到过这种奇怪的现象: typedef type_t *TYPE; 我的观点是声明一个 TYPE 类型的变量并不能说明实际上声明了一个指针. 您是否和我一样认为这会带来很多困惑?这是为了强制执行封装,还是还有其他原因?您认为这是一种不好的做法吗? 解决方案 总的来说,这是一个不好的做法.重要 ..
发布时间:2021-12-13 13:25:15 其他开发

C++ typedef const 指针的解释

首先,示例代码: 案例 1: typedef char* CHARS;typedef CHARS const CPTR;//指向字符的常量指针 文字替换CHARS变成: typedef char* const CPTR;//仍然是一个指向字符的常量指针 情况 2: typedef char* CHARS;typedef const CHARS CPTR;//指向字符的常量指针 文 ..
发布时间:2021-12-13 13:16:54 C/C++开发

指向结构的指针的 C typedef

我遇到了以下代码: typedef struct {双x;双y;双z;} *向量; 这是一个有效的类型定义吗?代码编译并运行良好.我只是好奇这是否是常见做法. 解决方案 绝对有效.通常,您可以通过将两种类型一起定义来充分利用这种方式: typedef 结构体{一个;国际b;} S1, *S1PTR; 其中 S1 是一个结构体,S1PTR 是指向该结构体的指针. ..
发布时间:2021-12-13 13:11:38 其他开发

Dart 中的函数类型定义/函数类型别名是什么?

我已经阅读了说明,我知道它是一个函数类型别名. typedef 或函数类型别名为函数类型提供了一个名称,您可以在声明字段和返回类型时使用该名称.当函数类型分配给变量时,typedef 会保留类型信息. http://www.dartlang.org/docs/spec/latest/dart-language-specification.html#kix.yyd520hand9j ..
发布时间:2021-12-11 15:58:06 其他开发

什么是 Objective-C 中的 typedef 枚举?

我不认为我从根本上理解 enum 是什么,以及何时使用它. 例如: typedef enum {k圆,k矩形,球体形状类型; 这里真正声明的是什么? 解决方案 这里声明了三件事:声明了一个匿名枚举类型,ShapeType 被声明为该匿名枚举的 typedef,以及三个名称 kCircle、kRectangle 和 kOblateSpheroid 被声明为整数常量. 让我们分 ..
发布时间:2021-12-02 17:57:55 移动开发

您如何阅读 C 声明?

我听说过一些方法,但没有一个被卡住.我个人尽量避免在 C 中使用复杂类型,并尝试将它们分解为组件 typedef. 我现在面临着维护所谓“三星级程序员"的一些遗留代码的问题,而且我很难阅读一些 ***code[][]. 您如何阅读复杂的 C 声明? 解决方案 本文解释了一个相对简单的 7 条规则,如果您发现自己想要或需要手动阅读任何 C 声明,它们将让您阅读:http://ww ..
发布时间:2021-12-02 08:23:07 其他开发

了解 C 中函数指针的类型定义

当我阅读其他人的代码时,我总是有点困惑,这些代码具有用于指向带参数的函数的指针的类型定义.我记得我在尝试理解前段时间用 C 语言编写的数值算法时花了一段时间来理解这样的定义.那么,您能否分享关于如何为函数指针(Do's 和 Do's)编写好的 typedef 的技巧和想法,以及它们为什么有用以及如何理解其他人的工作?谢谢! 解决方案 考虑 C 标准中的 signal() 函数: exte ..
发布时间:2021-12-02 08:11:16 其他开发

自引用结构定义?

我已经很久没有写 C 语言了,所以我不确定我应该如何去做这些递归的事情......我希望每个单元格都包含另一个单元格,但我得到了一个沿着“字段'子'的类型不完整"的错误.怎么了? typedef struct Cell {int isParent;细胞儿童;} 细胞; 解决方案 显然一个 Cell 不能包含另一个 Cell,因为它变成了一个永无止境的递归. 但是一个 Cell 可以包含 ..
发布时间:2021-12-02 08:03:14 其他开发

为什么我们要在 C 中如此频繁地 typedef 结构?

我见过很多由如下结构组成的程序 typedef 结构体{国际我;字符 k;} 元素;elem 用户; 为什么经常需要它?有什么具体原因或适用领域吗? 解决方案 正如 Greg Hewgill 所说,typedef 意味着您不再需要到处编写 struct.这不仅可以节省按键次数,还可以使代码更简洁,因为它提供了更多的抽象. 类似的东西 typedef struct {整数 x, ..
发布时间:2021-12-01 23:50:09 其他开发

typedef 结构与结构定义

我是 C 编程的初学者,但我想知道在定义结构时使用 typedef 与不使用 typedef 有什么区别.在我看来真的没有区别,他们实现了相同的目标. struct myStruct{一个;整数二;}; 对比 typedef struct{一个;整数二;}myStruct; 解决方案 常见的习惯用法是同时使用两者: typedef struct S {整数 x;} 它们是不同的定义. ..
发布时间:2021-12-01 23:41:39 其他开发

C++ 模板 typedef

我有一堂课 template类矩阵{//....}; 我想创建一个 typedef 来创建一个 Vector(列向量),它相当于一个大小为 N 和 1 的 Matrix.类似的东西: typedef 矩阵向量N; 产生编译错误.以下创建了类似的东西,但不完全是我想要的: template 类向量:公共矩阵{ }; 是否有解决方案或不太昂贵的解决方法/最佳实践? 解决方案 ..
发布时间:2021-12-01 15:42:31 C/C++开发

C++11 中的“typedef"和“using"有什么区别?

我知道在 C++11 中我们现在可以使用 using 来编写类型别名,比如 typedefs: typedef int MyInt; 据我所知,相当于: using MyInt = int; 这种新的语法是为了有一种表达“模板类型定义"的方法而产生的: 模板使用 MyType = AnotherType; 但是,对于前两个非模板示例,标准中是否还有其他细微差别?例如,typedefs ..
发布时间:2021-12-01 15:22:20 C/C++开发

Typedef 函数指针?

我正在学习如何动态加载 DLL,但我不明白这一行 typedef void (*FunctionFunc)(); 我有几个问题.如果有人能够回答他们,我将不胜感激. 为什么要使用 typedef? 语法看起来很奇怪;void 之后应该没有函数名什么的吗?它看起来像一个匿名函数. 是否创建了函数指针来存储函数的内存地址? 所以我现在很困惑;你能帮我澄清一下吗? 解决方案 ..
发布时间:2021-12-01 15:19:12 C/C++开发

C++ 中“struct"和“typedef struct"的区别?

在C++中,有什么区别: struct Foo { ... }; 和: typedef struct { ... } Foo; 解决方案 在 C++ 中,只有细微的差别.它是 C 语言的延续,在这方面有所作为. C 语言标准(C89 §3.1.2.3,C99 §6.2.3 和 C11 §6.2.3) 为不同类别的标识符规定了单独的命名空间,包括 标签标识符(对于struct/uni ..
发布时间:2021-12-01 14:55:39 C/C++开发