-
8 votesanswersviews
我应该什么时候输入structdef struct to指向struct?
我不是低级非面向对象编程语言的专家,我正在为工作中的项目编写一些C代码 . 我正在尝试创建一些不错的抽象数据类型,并且谷歌搜索让我意识到人们在两个方面使用基于结构的ADT . 有些人将数据类型定义为结构: typedef struct adt { //content here } adt; 并在头文件中将其公开给世界 . 其他人将数据类型定义为struct的指针: // In .c fi... -
6 votesanswersviews
为什么内部结构中不允许使用typedef?
我有一个程序,在现有的typedef结构中定义一个typedef结构,我想知道为什么我得到一个编译错误 . 这是程序: typedef struct Outer { typedef struct Inner { int b; }INNER; INNER inner; int a; }OUTER; int main() { ... -
37 votesanswersviews
什么是'forward declaration'以及'typedef struct X'和'struct X'之间的区别?
我是C编程的初学者,我知道struct type declaration和typedef struct declaration之间的区别 . 我遇到了一个答案,说如果我们定义一个结构,如: typedef struct { some members; }struct_name; 然后它就像为匿名结构提供别名(因为它没有标记名称) . 所以它不能用于前瞻性声明 . 我不知道“前瞻性宣言”是什么意... -
3 votesanswersviews
const限定符被忽略[重复]
这个问题在这里已有答案: typedef pointer const weirdness 6个答案 我有一个struct type_s . 然后我输入一个指向结构type_s的指针作为类型 . 如果我有 const struct type_s* 那么编译器将正确地抱怨如果对结构成员进行了赋值,如函数Test1()中所示 . 但是如果我创建一个const类型,它是同一结构指针的typedef,编... -
674 votesanswersviews
typedef struct vs struct definitions [duplicate]
这个问题在这里已有答案: Why should we typedef a struct so often in C? 15个答案 我'm a beginner in C programming, but I was wondering what'在定义结构时使用 typedef 与不使用 typedef 之间的区别 . 在我看来,实际上没有区别,他们实现了同样的目标 . struct mySt... -
722 votesanswersviews
C 11中'typedef'和'using'有什么区别?
我知道在C 11中我们现在可以使用 using 来写类型别名,比如 typedef : typedef int MyInt; 从我的理解来看,相当于: using MyInt = int; 这种新语法来自于努力表达“ template typedef ”: template< class T > using MyType = AnotherType< T, MyAllocat... -
9 votesanswersviews
块类型的Objective-C属性的语法(不带typedef)
声明引用块的属性的语法是: typedef void (^voidBlock)(); @property (nonatomic, copy) voidBlock callback; ... @synthesize callback; 如果没有typedef怎么办呢? -
0 votesanswersviews
如何确保模板中的typedef也被调用?
我正在使用SWIG为C#包装一个C类(PointMatcher.h) . 我使用 %template 指令将模板类具体化,如下所示: %include "../pointmatcher/PointMatcher.h" %template(PointMatcherFloat) PointMatcher<float>; 但是,事实证明模板 PointMatcher&... -
53 votesanswersviews
C静态多态(CRTP)并使用派生类中的typedef
我阅读了Wikipedia article关于C中用于执行静态(读取:编译时)多态的奇怪重复出现的模板模式 . 我想概括它,以便我可以根据派生类型更改函数的返回类型 . (这似乎应该是可能的,因为基类型知道模板参数中的派生类型) . 不幸的是,以下代码现在很容易访问gcc,所以我还没有尝试过 . )谁知道为什么? template <typename derived_t> class... -
2 votesanswersviews
将const限定符添加到数组引用typedef
请考虑以下类型定义: typedef int (&foo_t)[3]; 要么 using foo_t = int(&)[3]; 将const限定符添加到类型时,将忽略它: int foo[3] = {1, 2, 3}; const foo_t fooref = foo; fooref[0] = 4; // No error here 或者当我尝试为其分配const数组时: ... -
-2 votesanswersviews
使用运算符重载时,Typedef结构导致未知类型名称
此代码无法编译: typedef struct { int node_id; double node_val; int activation_type; void operator= (const node_info &rhs) { node_id = rhs.node_id; node_val = rhs.node_val; ... -
318 votesanswersviews
C模板typedef
我上课了 template<size_t N, size_t M> class Matrix { // .... }; 我想创建一个 typedef ,它创建一个 Vector (列向量),相当于一个大小为N和1的 Matrix . 类似的东西: typedef Matrix<N,1> Vector<N>; 这会产生编译错误 . 以下内容创建了类似... -
720 votesanswersviews
C中的'struct'和'typedef struct'之间的区别?
在C中,是否有任何区别: struct Foo { ... }; 和 typedef struct { ... } Foo; -
0 votesanswersviews
如何在此堆栈中打印值?
我找到了一些代码来实现堆栈的C实现,并决定使用它 . 但是,有几个typedef,我很难在stackT中打印值(实际上是一个char数组) . 以下是代码 . 我究竟做错了什么? #include <stdio.h> #include <stdlib.h> typedef char stackElementT; typedef struct { stackEleme... -
32 votesanswersviews
typedef声明中的typedef-name是否可选?
当我看到下面的代码在g -4.2中编译没有错误或警告时,我感到非常惊讶: typedef enum test { one }; 我的假设是,如果您使用 typedef 关键字,则需要额外的标识符,如: typedef enum test { one } test; 如前所述,g -4.2甚至没有警告也接受它 . Clang 3.0警告“警告:typedef需要一个名称", simi... -
2 votesanswersviews
Typedef-name与C中的struct标记冲突
这是我对C中结构声明的第二次调查 . (第一个是here)但现在我遇到了this post . 具体来说,我不确定为什么这在C中完全没问题,但在C中却没有 . typedef struct{ int one; int two; }myStruct; struct myStruct; //forward declaration fails void blah(myStruct*... -
2 votesanswersviews
头文件中的Typedef对包含它的另一个文件不可见
我在C中遇到以下问题:我在头文件(“mep.h”)中为结构声明了一个typedef #ifndef MEP_H #define MEP_H typedef struct Mep_tag Mep; <other stuff declared here> #endif 我使用另一个包含“mep.h”的头文件(“mep_types.h”),定义结构“Mep_tag”并使用“Mep”类型... -
4 votesanswersviews
Typedef struct未知类型名称[关闭]
搜索了一会儿 . 我编写了一个简单的程序来尝试解决我的更大问题更容易获得很少或没有成功 . 这是主要工作正常的代码: typedef struct nimaginario{ int parte_real; int parte_imaginaria; }nimaginario; int suma(nimaginario *n){ return n->parte_rea... -
0 votesanswersviews
多维数组和指向那些具有一个Typedef的数组的指针
此代码有效,允许我通过指针数组访问2D数组: typedef uint8_t IMAGE_TYPE[4][8]; typedef uint8_t (*IMAGE_PTR_TYPE)[8]; IMAGE_TYPE test1 = {{0,1,2,3,4,5,6,7}, {0,1,2,3,4,5,6,7}, {0,1,2,... -
0 votesanswersviews
链表:指针的类型“next”和struct的名称是否相同?
#include<stdio.h> #include<stdlib.h> typedef struct { int val; struct node* next; } Node, *NodePtr; void makeInitialLinkedList(int a[], int n) { int i; NodePtr rec=NULL; ... -
0 votesanswersviews
函数的Typedef结构指针(C)
我试图将一个typedef结构指针传递给一个函数,编译器正在抱怨此错误消息: error: unknown type name ‘RootP’. 这是代码... int main() { typedef struct Root { struct Root *child; }*RootP; RootP rootNode = malloc(sizeof(... -
1 votesanswersviews
C中带有typedef结构的未知类型名称
此代码写在名为Monster.c的文件中 . 我在GameMain.c文件和Monster.c文件中都定义了Monster.h . 在Monster.h文件中,代码是: #ifdef MONSTER_H_ #define MONSTER_H_ int Monster(int Selection); EnemyStats MonsterStats(int Selection); #endif ... -
278 votesanswersviews
C#中typedef的等价物
在C#中是否有typedef等价物,或者某种类似的行为?我做了一些谷歌搜索,但我看到的每个地方似乎都是负面的 . 目前我的情况类似于以下情况: class GenericClass<T> { public event EventHandler<EventData> MyEvent; public class EventData : EventArgs { ... -
0 votesanswersviews
ifdef中的typedef的CDT索引器错误
我对索引器有问题 . 它批评了SOCKET在该方法中的使用: #ifndef TEST_H_ #define TEST_H_ #ifdef linux typedef int SOCKET; #endif class Test { public: void test(const SOCKET src); }; #endif /* TEST_H_ */ 我的eclipse版本是:版本... -
4 votesanswersviews
类模板中的Typedef评估
下面的代码用g编译,但无法用clang编译 . struct X; template <typename T> struct Traits { typedef typename Traits<T>::Container Container; }; template <> struct Traits<X> { typedef std... -
1 votesanswersviews
我怎样才能使用与类外相关的模板化typedef(例如,通过另一个类),与boost :: graph相关
我找到了一个非常有用的答案,如何在Modifying vertex properties in a Boost::Graph下使用boost :: graph创建模板化图形 对我来说,只要我在Graph-class本身中对图形进行所有工作,这就非常方便 . 但是,可能需要从外部访问信息,例如,一个人可能想要实现一个Printer-class,它接受一个Graph-object并打印出所有存储的信息... -
4 votesanswersviews
有没有办法声明一个Objective-C块typedef,其参数包含typedef?
对于那里的客观C大师来说,这是一个有趣的... 有没有办法声明一个包含该typedef参数的objective-C块typedef? typedef BOOL (^SSCellAction) ( UITableViewController* inTVC, SSCellAction inChainedAction ); 我的想法是,我想使用链式菜单操作系统,允许一系列工作/响应发生(通常1-3项)... -
381 votesanswersviews
Typedef函数指针?
我正在学习如何动态加载DLL,但我不明白的是这一行 typedef void (*FunctionFunc)(); 我有几个问题 . 如果有人能够回答他们,我将不胜感激 . 为什么使用 typedef ? 语法看起来很奇怪;在 void 之后应该没有函数名称或什么?它看起来像一个匿名函数 . 是否创建了一个函数指针来存储函数的内存地址? 所以我此刻很困惑;你能为我澄清一下吗? -
204 votesanswersviews
在C中转发typedef的声明
为什么编译器不允许我转发声明一个typedef? 假设这是不可能的,保持包含树小的最佳做法是什么? -
337 votesanswersviews
我们为什么要在C中经常输入一个结构?
我见过许多程序,包括如下所示的结构 typedef struct { int i; char k; } elem; elem user; 为什么经常这么需要?任何具体原因或适用范围?