Tag: 结构

在ac函数中返回struct

我有类似下面的C代码: struct MyStruct MyFunction (something here) { struct MyStruct data; //Some code here return data; } 返回值是数据的内存块的引用还是副本? MyFunction应该返回struct MyStruct *(带有相应的内存分配)而不是struct MyStruct吗?

结构/对象内的存储顺序

考虑这两种情况: struct customType { dataType1 var1; dataType2 var2; dataType3 var3; } ; customType instance1; // Assume var1, var2 and var3 were initialized to some valid values. customType * instance2 = &instance1; dataType1 firstMemberInsideStruct = (dataType1)(*instance2); class CustomType { public: dataType1 member1; dataType2 member2; retrunType1 memberFunction1(); private: dataType3 member3; dataType4 member4; retrunType2 memberFunction2(); }; customType object; […]

C:为一个函数参数发送不同的结构

我有一个使用OpenGL绘制圆的函数,我想传递一个包含x和y坐标以及半径的结构。 问题是这个相同的函数必须与3个不同的结构一起使用,所有结构都包含坐标,半径和绘制函数不使用的其他一些东西。 有没有办法只为3个不同的结构有一个参数(一次只发送一个)。 我希望我已经足够精确了。 PS:function必须是“抽象的”。

有没有办法在循环中打印struct成员而不命名C中的每个成员?

每次我想要打印或初始化结构时,我都必须通过每个成员使代码不能重复使用。 有没有办法在for,while或do while循环中执行此操作? typedef struct Client { char* Name; char* Address; char* Password; char* Privilege; }Client;

包含两个指针的struct的大小

这个结构的大小是多少? (32位系统计算。不是64位。) struct list_element { short data; struct list_element* next; struct list_element* prev; }; 我试过用这些公式计算大小: (sizeof(list_element *)+ sizeof(短))+((sizeof(list_element *)* 2) (4 + 2)+(4 * 2)= 6 + 8 = 14 (sizeof(短))+(sizeof(list_element *)* 2) 2 +(4 * 2)= 2 + 8 = 10 (sizeof(list_element *)+ sizeof(list_element *)+ sizeof(short))+(sizeof(list_element *)* 2) (4 + 4 + 2)+(4 * […]

如何按其中一个字段对结构的链接列表进行排序?

哇现在我知道我不。 大声笑。 我的结构是这样的: struct Medico{ int Id_Doctor; int Estado; char Nombre[60]; ////focus on this part of the structure, this is name. char Clave_Acceso[20]; char Especialidad[40]; struct Medico *next; }; 我想根据名称(字母顺序……)组织结构,以解决如何解决这个问题? 例如 Albert Haynesworth Bob Marley Carl Johnson 非常感谢你的进步。 :)(C,Unix)

读取文件和填充结构

我有一个结构具有以下定义: typedef struct myStruct{ int a; char* c; int f; } OBJECT; 我能够填充此对象并将其写入文件。 但是我无法读取其中的char * c值…在尝试读取它时,它会给我一个分段错误错误。 我的代码有什么问题: //writensave.c #include “mystruct.h” #include #include #define p(x) printf(x) int main() { p(“Creating file to write…\n”); FILE* file = fopen(“struct.dat”, “w”); if(file == NULL) { printf(“Error opening file\n”); return -1; } p(“creating structure\n”); OBJECT* myObj = (OBJECT*)malloc(sizeof(OBJECT)); myObj->a = […]

使用带有联合的位字段是否有效?

我使用了像这样的结构的bit字段, struct { unsigned int is_static: 1; unsigned int is_extern: 1; unsigned int is_auto: 1; } flags; 现在我想知道是否可以用一个联盟来完成,所以我修改了代码,如, union { unsigned int is_static: 1; unsigned int is_extern: 1; unsigned int is_auto: 1; } flags; 我找到了带有union的位字段,但是从输出中可以理解,并集中的所有字段都被赋予了一个位。 现在我看到使用带有union的位字段并不是错误的,但在我看来,像这样使用它在操作上是不正确的。 那么答案是什么 – 将字段与联合使用是否有效?

为什么这个联合的大小是2的位域?

我在Windows上的turbo C上工作,其中char占用一个字节。现在我的问题是下面的联合。 union a { unsigned char c:2; }b; void main() { printf(“%d”,sizeof(b)); \\or even sizeof(union a) } 该程序打印输出为2,其中联合应该只占用1个字节。 为什么会这样? 对于struct,它可以很好地给出1个字节但是这个联合工作不正常。 还有一件事如何访问这些位字段。 scanf(“%d”,&b.c); //even scanf(“%x”,bc); 没有用,因为我们不能有位的地址。所以我们必须使用另一个变量,如下所示 int x; scanf(“%d”,&x); bc=x; 我们不能避免吗? 有没有其他办法???

timepec在time.h中找不到

我不得不将应用程序从C ++重写为C.我在Ubuntu 12.04上使用gcc和Eclipse。 这样做我遇到了这个错误 ../src/TTNoddy.c: In function ‘main’: ../src/TTNoddy.c:16:2: error: unknown type name ‘timespec’ 这是我的代码片段,可以重现问题 #include int main(void) { timespec TS; TS.tv_nsec = 1; return 0; } 我在这里很困惑 – 我是一名C ++编码器,从来没有在我的生活中编写过纯C应用程序,但clock_gettime的手册页清楚地表明timespec存在于time.h头文件中,我在这里包含。 我错过了什么?