Tag: typedef

在C中,使用typedef指针是一种好的forms吗?

考虑以下C代码: typedef char * MYCHAR; MYCHAR x; 我的理解是结果是x是“char”类型的指针。 但是,如果x的声明远离typedef命令,则代码的人类读者不会立即知道x是指针。 或者,可以使用 typedef char MYCHAR; MYCHAR *x; 哪个被认为是更好的forms? 这不仅仅是风格问题吗?

在C中使用前向声明的typedef stuct

我有类似的东西: typedef struct Data DATA, *DATA_PTR; typedef struct Units UNITS, *UNITS_PTR; struct Data { double miscData; UNITS units; }; struct Units { double x[2]; double y[2]; double z[2]; }; 在我的project_typedef.h文件中。 在另一个文件中,我有类似的东西: void fileInput(DATA_PTR data) { //usual declarations and other things data->miscData = 0; //Works! data->units.x[0] = 5; //Doesn’t work //etc… } 但是,这不起作用,因为单元是在project_typedef.h数据之后声明的(如果我切换它的工作顺序)。 我得到的错误是“左’.x’必须有struct / union类型”。 […]

c中的typedef枚举说明

我正在查看微控制器上ADC的头文件,其中包含以下代码。 /** * ADC channels type. */ typedef enum { ADC_CH_0, ADC_CH_1, ADC_CH_2, ADC_CH_3, ADC_CH_4, ADC_CH_5, ADC_CH_6, } adc_channel_t; 在ADC的main.c中,有以下代码行 adc_channel_t channels[] = {ADC_CH_4, ADC_CH_5}; 我想知道为什么你需要为ADC声明新的数据类型? 什么typedef枚举意味着什么? 谢谢

c typedef(ed)opaque指针

我已经定义了一个不透明的结构和相关的API,如下所示: typedef struct foo foo; foo *create_foo(…); delete_foo(foo *f); 我无法在我的c文件中定义结构。 给出重新定义错误。 typedef struct foo { int implementation; }foo; 我可以在没有typedef的c文件中使用foo,但我想要typedef(即直接使用它作为foo *)。 有办法吗?

C中这两种typedef样式有什么区别?

我很好奇当typedefing一个枚举或结构时,这里的区别是什么。 这两个块之间在语义上有什么区别吗? 这个: typedef enum { first, second, third } SomeEnum; 还有这个: enum SomeEnum { first, second, third }; typedef enum SomeEnum SomeEnum; 结构相同的交易。 我已经看到两者都在使用,他们似乎都在C或Objective-C中做同样的事情。 是否存在真正的差异,或者只是偏好您可以使用哪种风格?

typedef一个函数指针类型

我想声明一个指向函数的指针类型,所以我尝试: typedef void (*print)(void); 工作完美 void (*print)(void); p是一个ponter变量,而不是一个类型。 typedef (void) (*print)(void); 错误预期标识符’(”””’ typedef void (*)(void) Print; 错误:在’打印’之前预期’=’,’,’,’;’,’asm’或’_ attribute _’。 我的问题是: 我是否必须使用typedef来声明函数指针类型? 为什么typedef (void) (*print)(void); 是错的 ? what ()在这里意味着什么? 为什么我不能用这种方式写: typedef void (*)(void) Print ?

typedef int(* pf)需要解释

通常,我们使用typedef来获取数据类型的备用名称。 例如 – typedef long int li; // li can be used now in place of long int 但是,下面的typedef做了什么? typedef int (*pf) (int, int);

typedef结构清晰度

我对typedef感到困惑,任何人都可以将其转录为正常的构图吗? 结构? 我真的不想处理typedef因为它让我感到困惑 struct stackNode { int data; struct stackNode *nxtptr; }; typedef struct stackNode StackNode; typedef StackNode *StackNodePtr; 是 typedef struct stackNode StackNode; 与struct stackNode StackNode和typedef StackNode *StackNodePtr; 与被struck stackNode *StackNodePtr相同?

实现定义类型的格式说明符,如time_t

我想让我的代码更加平台/独立于实现。 我不知道在编译代码时将在平台上实现什么time_t 。 我如何知道t的类型以确定要使用的格式说明符? … time_t t = time(NULL); printf(“%s”, t); …

typedef的标准

gcc 4.4.4 c89 我只是想知道在创建类型时是否应该遵循任何标准。 例如: typedef struct date { } date_t; 我也看到人们把这样的资本投入: typedef struct date { } Date; 或者变量 typedef unsigned int Age; 或这个 typedef unsigned int age_t; 是否有任何应遵循的标准。 我个人更喜欢用_t进行后固定。 非常感谢任何建议,