typedef相关内容

内置类型(int、char 等)的析构函数

在 C++ 中,以下代码给出了编译器错误: void destruct1 (int * item){项目->~int();} 这段代码几乎相同,我只是将 int 类型定义为另一种类型,然后发生了一些神奇的事情: typedef int myint;void destruct2 (myint * item){项目->~myint();} 为什么第二个代码有效?一个 int 是否仅仅因为它被类 ..
发布时间:2021-12-30 15:14:07 C/C++开发

typedef 如何处理函数指针

我想我可能患有可怕的“意外程序员"病,至少在涉及到 typedef 和函数指针时.所以我一直在试验涉及这些的各种组合,以根据我得到的所有输出来分析结果. 但是当我不断尝试不同的组合时,我没有分析结果,现在只是迷失在过程中. 我希望你们能帮我解决这个烂摊子. 第一个代码示例 typedef void (print)(void);void do_something (void) { ..
发布时间:2021-12-29 19:18:36 C/C++开发

Objective-C 中的前向声明枚举

我在 Objective-C 程序中遇到枚举可见性的问题.我有两个头文件,一个定义了 typedef enum.另一个文件需要使用 typedef 的类型. 在直接的 C 中,我会简单地 #include 另一个头文件,但在 Objective-C 中,建议不要在头文件之间使用 #import,而是使用根据需要转发 @class 声明.但是,我不知道如何向前声明枚举类型. 我不需要实际 ..
发布时间:2021-12-29 16:21:43 移动开发

将objective-c typedef转换为其等效的字符串

假设我在我的 .h 文件中声明了一个 typedef: typedef enum {JSON,XML,原子,RSS格式类型; 我想构建一个将 typedef 的数值转换为字符串的函数.例如,如果消息 [self toString:JSON] 被发送;它会返回“JSON". 函数看起来像这样: -(NSString *) toString:(FormatType)formatType { ..
发布时间:2021-12-29 16:16:56 移动开发

围绕基本类型的 C++ 类包装器

我见过/使用过的许多库都有 typedef 来提供可移植的、固定大小的变量,例如 int8、uint8、int16、uint16 等,无论平台如何,它们的大小都是正确的(而 c++11 本身使用标头 stdint.h) 最近在我正在编写的一个小型库中使用二进制文件 i/o 后,我可以看到以这种方式使用 typedef 以确保代码可移植的好处. 但是,如果我要输入“namespace:: ..
发布时间:2021-12-25 13:20:33 C/C++开发

Typedef 结构与结构?|定义差异|

以下块位于 main() 和每个函数之前(全局范围) 第一块: struct flight {整数;内部容量;国际旅客;}; 有了这个,你可以创建数组、指针、变量,而不是写} var;(它只定义了这个自定义数据类型的一个变量(struct flight)) 第二块: typedef struct flight {整数;内部容量;国际旅客;} 飞行; 声明它会创建一个数据类型fl ..
发布时间:2021-12-23 17:32:01 其他开发

未命名结构的前向声明

悬赏问题: 所以,这两个 Foo 不是一回事.美好的.第二种形式是在图书馆中给出的.鉴于我无法更改它,我该如何提前声明它? 我一直认为 C 和 C++ 允许重复声明,前提是没有重复定义.然后我在尝试编写扩展 C 库的 C++ 代码时遇到了这个问题. struct Foo;typedef struct {} Foo; 出现以下错误: 'struct Foo' 先前声明为 'struc ..
发布时间:2021-12-23 17:27:45 C/C++开发

为什么对结构使用不同的标签和 typedef?

在 C 代码中,我看到了以下内容: typedef struct SomeStructTag {//结构体成员一些结构; 我不清楚为什么这与以下内容不同: typedef struct SomeStruct {//结构体成员一些结构; 为类型使用特定名称并将其typedef改为不同的类型名称有什么意义? 解决方案 在大多数情况下,可以为两种目的使用相同的名称,没有任何问题.人们在代 ..
发布时间:2021-12-23 17:19:22 其他开发

解引用指向不完整类型的指针

我已经看到很多关于此的问题,但我将在没有特定代码的情况下提出不同的问题.有没有办法轻松确定导致类型不完整的原因?在我的情况下,我使用的是别人的代码,我完全确定我没有正确的标题,但是(因为计算机比人类眼球更快更好地完成这些事情)有没有办法让编译器说,“嘿,您认为在第 34 行输入了 X,但实际上 缺少."错误本身仅在您分配时显示,这不是很有帮助. 解决方案 前几天我看到一个问题,有人通过指定 ..
发布时间:2021-12-23 17:16:41 其他开发

C 与 C++ 中的 struct 和 typedef

我目前正在使用 C++ IDE 来处理需要在 C 上工作的东西,并希望确保我以后不会遇到这个问题.制作以下结构后: typedef struct test {一个;国际b;}; 然后我使用它创建一个实例test my_test; 然后是诸如 my_test.a = 5 之类的东西……这在我的 VStudio C++ 中运行良好.这会在以后的 gcc 上运行吗? 我阅读了弹出的相关问题(我 ..
发布时间:2021-12-23 17:13:37 C/C++开发

C Typedef - 不完整的类型

所以,出乎意料地,编译器决定把这个吐出来:“现场客户的类型不完整". 以下是相关代码片段: customer.c #include #include #include "customer.h"结构客户结构;typedef struct CustomerStruct{字符 ID[8];字符名称[30];字符姓氏[30];字符地址[100];} 顾客 ;/* 处理这里结构的函数 */ ..
发布时间:2021-12-23 17:04:19 其他开发

为什么 "typdef struct { struct S *s;} S;"包含指向相同类型编译的指针?

我正在尝试 typedef 一个 struct,它包含一个指向另一个相同类型的指针. 这就是我认为最好的版本: typedef struct 元素{字符值;结构元素 *next;} 元素; 为什么该变体也在编译 + 执行?: typedef 结构体{字符值;结构元素 *next;} 元素; 为了描述第一个,我会说:“Name struct Element Element now" 第 ..
发布时间:2021-12-23 17:00:30 其他开发

C : typedef 结构名称 {...};VS typedef struct{...} 名称;

正如标题所说,我有这个代码: typedef struct Book{内部标识;字符标题[256];字符摘要[2048];int numberOfAuthors;结构作者 *作者;};typedef 结构作者{字符名字[56];字符姓氏[56];};typedef 结构书{结构书 *arr;int numberOfBooks;}; 我从 gcc 得到这些错误: bookstore.c:8: ..
发布时间:2021-12-23 16:59:10 其他开发

C 类型定义和结构问题

这两个声明之间有什么区别,哪个比另一个更受欢迎? typedef struct IOPORT {GPIO_TypeDef* 端口;u16 针;IOPORT;类型定义结构{GPIO_TypeDef* 端口;u16 针;IOPORT; 解决方案 至于哪种风格更受欢迎,我更喜欢第一种风格(在结构标记中和作为结构的 typedef 中的名称)仅仅是因为有除了源文件中的几个字符外,没有任何缺点.我的 ..
发布时间:2021-12-23 16:58:35 其他开发

什么是“前向声明"以及“typedef struct X"和“struct X"之间的区别?

我是 C 编程的初学者,我知道 struct 类型声明和 typedef 结构声明之间的区别.我偶然知道一个答案说,如果我们定义一个 struct 像: typedef struct {部分会员;} struct_name; 然后就像为匿名结构提供别名(因为它没有标签名称).所以它不能用于前向声明.我不知道前向声明是什么意思. 另外,我想知道以下代码: typedef struct N ..
发布时间:2021-12-23 16:53:21 其他开发

如何定义包含指向自身的指针的 typedef 结构?

我正在用 C 编写一个 LinkedList,下面的代码代表我的 Node 定义. typedef struct {整数值;struct Node* next;结构节点*上一个;节点; 我理解(或认为我知道)struct Node 与 typedef struct Node 不同.允许我的代码按预期编译和运行,但是,在分配 next 和 prev 时我收到很多警告(警告:从不兼容的指针类型分配 ..
发布时间:2021-12-23 16:52:08 其他开发

模板类型定义?

我正在使用 libgc,一个用于 C 和 C++ 的垃圾收集器.要使 STL 容器可垃圾回收,必须使用 gc_allocator. 而不是写 std::vector 一定要写 std::vector> 有没有办法定义像 这样的东西 templatetypedef std::vector>gc_vector; 我前一段时间检查过,发现这是不可能的.但我可能错了,或者可能有另一 ..
发布时间:2021-12-13 19:09:26 C/C++开发