我定义了以下结构:
typedef struct {
int num_albaran;
char cod_vendedor[5];
char cod_cliente[5];
char cod_articulo[5];
int unidades_vendidas;
char fecha_venta[5];
float desc_aplicado;
float total_venta;
} plantilla_venta;
typedef struct {
long int num_registros;
char blancos[36]; // tengo que meterle esa cantidad porque la estructura de ventas me da 40 a saber por que....
} plantilla_primer_registro;
当我使用sizeof
函数时:
printf("%d - %d", sizeof(plantilla_venta), sizeof(plantilla_primer_registro));
我得到以下尺寸:
40 - 40
这是不正确的,这意味着我在读取或写入文件数据时遇到了麻烦。我该如何纠正?
答案 0 :(得分:0)
这是真的,因为这个结构应该是40个字节。 因为:
you have 2 integers = 2 * 2 bytes = 4 bytes. In some systems int is 2 bytes
4 char array of size 5 = 4 * 5 bytes = 20 bytes. An ascii char is 1 byte ( Unicode chars take 2 bytes )
2 float numbers = 2 * 8 bytes = 16 bytes.
如果你将它们加起来8+20+16 bytes
,它们会导致40 bytes
,那么问题是什么?