typedef相关内容

函数体内的typedef是不好的编程习惯吗?

我有一些类 C ,并且希望将其实例和方法的地址传递给测试函数 Test_C_Foo1()中的某个函子.Functor是模板类,我必须提供类方法的类型( MEMFN1 )作为其模板参数之一.我必须在某个地方定义 MEMFN1 类型,但是不想更改 C.h ,也不想使用它来污染全局名称空间.我决定尽可能地对 typedef 进行本地化,因此将其放在测试函数中-在实际使用 MEMFN1 的范围内.在函数体 ..
发布时间:2021-04-19 21:02:50 C/C++开发

typedef是否应该同时包含在类定义和类声明中?

我正在学习C ++.我知道C ++比大多数其他语言都更冗长,但是在struct/类声明中定义 typedef ,然后在struct/类定义中再次让我思考是否还有更好的方法或 typedef 的更多中心位置,该位置只需要定义一次,是否遵循定义为C ++最佳实践的方式.我在网上找不到任何特别的东西. 将 typedef 移到更全局的位置似乎是不合适的,并且 typedef 都用于结构体中方法的定 ..
发布时间:2021-04-19 20:17:14 C/C++开发

在定长数组typedef中使用new

如何为固定长度的数组定义typedef,以便也可以“新建".以下内容不起作用: typedef double Vector [3];向量* v =新向量;//不编译 我们正在尝试将一些旧的C代码包装到C ++中,以通用方式处理 float * 和 float(*)[3] . 解决方案 指向 double [3] 的指针是 double * -这样就可以了: typedef do ..
发布时间:2021-04-19 20:12:42 C/C++开发

为什么当一个模板类从另一个模板类继承时,需要重新指定typedef并限定函数调用?

当模板类从另一个模板类继承时,必须再次重新定义基类中的typedef(即,它们不会自动继承),并且必须限定基类中的函数调用.这是为什么?这不是已经明确了吗? 因此,如果我有20个模板类,都定义了相同的typedef,那么我将无法引入包含这些定义的基类并从中继承,因为无论如何我都必须在每个类中重新定义typedef,这不利于目的.这使源代码变得不必要地冗长. 我可以看到在问题,但我不理解 ..
发布时间:2021-04-19 19:27:54 C/C++开发

是否可以保证size_t是整数类型之一的别名类型?

或者它可以是单独的无符号整数类型吗? 对于不同的(无符号)整数类型,我对模板函数有不同的专长.我需要为 size_t 提供单独的专业化吗? 解决方案 C ++标准说: 18.2/2内容与标准C库头相同,但有以下更改: 18.2/6类型size_t是实现定义的无符号整数类型,其大小足以容纳任何对象的字节大小. 18.2/7 [注意:建议实现为ptrdiff_t和siz ..
发布时间:2021-04-19 19:27:14 C/C++开发

有人可以解释这个C ++ typedef吗?

我已经有一段时间没有使用C ++了,但是我才刚开始使用它.尽管大部分内容都说得通,但我还是发现了一些困惑.例如,有人可以解释一下此行的作用吗? typedef bool(OptionManager :: * OptionHandler)(const ABString& value); 解决方案 它将类型 OptionHandler 定义为指向类 OptionManager 的成员函数的指 ..
发布时间:2021-04-19 19:14:04 C/C++开发

模板基类typedef成员不可见

我知道默认情况下“依赖名称"对于编译器是不可见的.但是我被告知其他SO问题的答案( 解决方案 您可能想做: 使用MemberType =类型名TBase :: MemberType;//新型别名语法 或 typedef typename TBase :: MemberType MemberType;//旧类型别名语法 使用Base :: member; 的语法只能 ..
发布时间:2021-04-19 18:42:46 C/C++开发

C中的typedef数组类型

typedef int arr [10] 我了解以上声明为int [10]定义了新名称这样 arr intArray; 等效于 int intArray [10]; 但是,我对执行此操作的约定感到困惑.在我看来 typedef int arr [10] 令人困惑,对我来说一个清晰的方法是 typedef int [10] arr 即我将"int [10 ..
发布时间:2021-04-09 20:22:38 其他开发

C ++,用lambda填充typedef吗?

我有一个功能,例如: typedef void(*timercallback)(void); void timer1_attachInterrupt(timercallback userFunc); 我希望调用成员方法而不是C样式函数,因此我尝试了以下lambda: timer1_attachInterrupt([this](void) -> void { _member_meth ..
发布时间:2021-02-15 21:16:14 C/C++开发

如何在头文件中引用typedef?

我有一个定义了typedef结构的源文件: typedef struct node { char *key; char *value; struct node *next; } *Node; 在此模块中,有一些函数在Node上运行,并将Node作为返回类型.我应该在这个typedef的头文件中写什么? 只写正确吗 typedef *Node; 在标 ..
发布时间:2020-11-22 19:31:02 其他开发

为什么使用Glib数据类型更好(例如,使用"gint"而不是"int")?

可能重复: 为什么glib重新定义类型? 在GTK + 2.0教程中,我可以在此处阅读以下有关数据类型的声明: 在前面的示例中,您可能已经注意到了一些需要解释的东西.您看到的gint,gchar等分别是int和char的typedef,它们是GLib系统的一部分. 这样做是为了避免在进行计算时对简单数据类型大小的讨厌依赖. 我不明白此说明的最后一部分.为什么使用Glib数据类型 ..
发布时间:2020-11-15 23:49:59 其他开发

如何释放仅包含指针的结构

我有一个在下面看到的结构: typedef struct _List { Person *person; // pointer for people list DoList *do; // Kinda timer, for checking list in some intervals } List; 是否需要释放此结构?如果是这样,我该如何释放它? 解决方案 如 ..
发布时间:2020-11-10 22:04:32 其他开发

重新定义;不同的基本类型(typedef结构)

当在不同文件中定义结构时,尝试使结构正常工作时会遇到麻烦.据我所知,错误告诉我该结构被定义了两次不同的时间.我相信也许我可能需要在某个地方使用extern?我尝试过尝试并在Google上寻求帮助,但无济于事. 非常感谢您的任何帮助,谢谢.我的所有四个文件都在下面. 文件:Foo.h typedef struct { int number; } my_struct; ..
发布时间:2020-11-02 20:17:03 其他开发