问题标签 [typedef]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2309 浏览

c - “struct foo*”和“foo*”之间的区别,其中 foo 是一个结构?

在 C 中,如果 foo 是一个结构,那么写“struct foo”而不是“foo”有区别吗?

例如:

谢谢/埃里克

0 投票
4 回答
2388 浏览

c++ - 继承而不是 typedef

C++ 无法从 typedef 或 typedef 模板类中生成模板。我知道如果我继承并使我的类成为模板,它将起作用。

例子:

这样做是有利的,以便我可以“伪造” typedef 还是有更好的方法来做到这一点?

0 投票
1 回答
10424 浏览

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

在 C++ 中,以下代码给出了编译器错误:

这段代码几乎相同,我只是将 int 类型定义为另一种类型,然后发生了一些神奇的事情:

为什么第二个代码有效?一个 int 是否仅仅因为它已被类型定义而得到一个析构函数?

如果您想知道为什么有人愿意这样做:这来自重构 C++ 代码。我们正在删除标准堆并用自制池替换它。这需要我们调用placement-new 和析构函数。我知道为原始类型调用析构函数是没有用的,但是我们仍然希望在代码中使用它们,以防我们以后用真正的类替换 POD。

发现裸 int 不起作用但 typedefed 起作用是相当令人惊讶的。

顺便说一句 - 我有一个涉及模板功能的解决方案。我们只是在模板中键入定义,一切都很好。

0 投票
13 回答
60457 浏览

c++ - 我什么时候应该在 C++ 中使用 typedef?

在我多年的 C++ (MFC) 编程中,我从来没有觉得需要使用typedef,所以我真的不知道它是用来做什么的。我应该在哪里使用它?typedef是否存在首选使用的实际情况?或者这真的更像是一个特定于 C 的关键字吗?

0 投票
5 回答
511 浏览

c++ - 我什么时候不需要 typedef?

我遇到了一些代码阅读

我听说这些结构源自 C。在 C++ 中,您可以轻松编写

真的吗?你什么时候需要第一个变种?

0 投票
4 回答
487 浏览

namespaces - 在命名空间声明之后立即添加“使用命名空间”是否可以接受?

我有一个包含一些类型定义的小命名空间,我用它来使我的代码看起来更干净。但是,我不想为每个使用其中一种类型的文件添加“使用命名空间...”行,毕竟我已经为文件添加了#include。


我的文件.cpp:


typedefs.h:


在命名空间声明之后立即添加“使用命名空间”行是否可以接受?如果不是,为什么不呢?

0 投票
4 回答
922 浏览

c - C:修改通过 typedef 传递的 int 指针的最佳方法是什么?

我有一个 typedef int my_type 并且我有一个看起来像的函数

我应该如何使用这个函数来修改 x 使用最佳实践?

0 投票
5 回答
2253 浏览

c++ - typedef 标准容器?

我想做

但是那个错误阻止了我。我该怎么做呢?

0 投票
4 回答
3054 浏览

c# - typedef 等效于 c# 中的重载

我有一堆代码,其中包含许多具有不同含义的整数(我宁愿使用通用解决方案,但对于一个具体示例:每月的一天与一年中的月份与年份等)。我希望能够根据这些含义重载类构造函数。

例如

现在显然这行不通,但如果我可以定义一个类型(不仅仅是别名),int除了这样的名称之外,它是一个类型:

我可以做我需要的重载,让类型系统跟踪什么是什么。特别是,这将允许我确保值不会混淆,例如从函数返回的值作为年份不用作月份中的日期。

在 c# 中是否有任何方法classstruct包装器可以做到这一点?


如果该解决方案也适用于浮点数和双精度数,那就太好了。

0 投票
3 回答
799 浏览

c++ - typedef 的有效使用?

我有一个char通过网络发送的(即字节)缓冲区。在将来的某个时候,我可能想将缓冲区切换为不同的类型,例如unsigned charor short。我一直在考虑做这样的事情:

每当我对缓冲区元素做任何事情时,我都会将其声明为bufferElementType而不是char. 这样我可以通过改变这个typedef来切换到另一种类型(当然不会那么简单,但至少可以很容易地识别出需要修改的地方......bufferElementType附近会有一个)。

这是对 typedef 的有效/良好使用吗?不值得麻烦吗?将来某个时候会不会让我头疼?它会让维护程序员讨厌我吗?

我已经阅读了When Should I Use Typedef In C++,但没有人真正涵盖这一点。