Tag: typedef

将objective-c typedef转换为等价的string

假设我在.h文件中声明了typedef,如下所示: typedef enum { JSON, XML, Atom, RSS } FormatType; 我想build立一个函数,将typedef的数值转换为一个string。 例如,如果发送了消息[self toString:JSON] 它会返回“JSON”。 该函数看起来像这样: -(NSString *) toString:(FormatType)formatType { //need help here return []; } 顺便说一句,如果我尝试这个语法 [self toString:FormatType.JSON]; 将typedef值传递给方法,我得到一个错误。 我错过了什么?

typedef指针常量古怪

请考虑下面的代码: typedef struct Person* PersonRef; struct Person { int age; }; const PersonRef person = NULL; void changePerson(PersonRef newPerson) { person = newPerson; } 出于某种原因,编译器正在关于只读值不可分配。 但const关键字不应该使指针为const。 有任何想法吗?

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

我在C写一个LinkedList,下面的代码表示我的节点定义。 typedef struct { int value; struct Node* next; struct Node* prev; } Node; 我明白(或者认为我是) struct Node不同于typedef struct Node 。 授予我的代码编译和运行,因为它应该,但是,当分配next和prev (警告:从不兼容的指针types赋值)时,我得到了很多警告。 我猜测这与我如何在Node结构中定义它们有关。 我在这里上传了完整的源代码 所以,如果确实是这个问题,我应该如何在typedef struct Node定义next和prev ? 我担心这可能是一个转发,但不能find我正在寻找的东西。 谢谢。

在C ++中提前声明typedef

为什么编译器不让我转发声明typedef? 假设这是不可能的,那么让我们的包含树保持小的最佳做法是什么?

uint8_t vs unsigned char

使用uint8_t比C中的unsigned char什么优势? 我知道在几乎所有的系统上, uint8_t只是unsigned char一个typedef,所以为什么要使用它呢?

在C ++中是否有类似于Java的typedef关键字或方法?

来自C和C ++的背景,我发现明智地使用typedef是非常有用的。 您是否知道在Java中实现类似function的方法,无论是Java机制,模式还是其他有效的方法?

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

我阅读了维基百科有关在C ++中使用静态(读:编译时)多态性的好奇的循环模板模式的文章 。 我想概括它,以便我可以根据派生types更改函数的返回types。 (这看起来应该是可能的,因为基types从模板参数中知道派生types)。 不幸的是,下面的代码不会使用MSVC 2010进行编译(我现在还没有轻松访问gcc,所以我还没有尝试过)。 任何人知道为什么 template <typename derived_t> class base { public: typedef typename derived_t::value_type value_type; value_type foo() { return static_cast<derived_t*>(this)->foo(); } }; template <typename T> class derived : public base<derived<T> > { public: typedef T value_type; value_type foo() { return T(); //return some T object (assumes T is default constructable) } […]

将“typedef”从基础传播到“模板”的派生类

我试图定义基类,其中只包含typedef。 template<typename T> class A { public: typedef std::vector<T> Vec_t; }; template<typename T> class B : public A<T> { private: Vec_t v; // fails – Vec_t is not recognized }; 为什么在BI中收到一个错误,Vec_t无法识别,我需要明确写入? typename A<T>::Vec_t v;

你如何阅读C声明?

我听说过一些方法,但没有一个卡住了。 我个人尽量避免在C中的复杂types,并尝试将它们分解成组件types定义。 我现在正在维护一个所谓的“三星级程序员”的遗留代码,而且我正在阅读一些***代码[] []。 你如何阅读复杂的C声明?

typedef和#define在c中是一样的吗?

我不知道typedef和#define在c中是一样的吗?