在C语言中,求字节数的方法主要依赖于`sizeof`运算符。`sizeof`运算符可以在编译时计算出变量或数据类型所占用的字节数,因此它不受程序运行时环境的影响。以下是几种常见的使用`sizeof`运算符求字节数的方法:
计算基本数据类型的字节数
```c
include int main() { printf("一个int类型变量占用 %zu 字节 ", sizeof(int)); printf("一个char类型变量占用 %zu 字节 ", sizeof(char)); printf("一个float类型变量占用 %zu 字节 ", sizeof(float)); return 0; } ``` ```c include int main() { int num; printf("变量num占用 %zu 字节 ", sizeof(num)); return 0; } ``` ```c include struct Person { char name; int age; }; int main() { struct Person person; printf("结构体Person占用 %zu 字节 ", sizeof(person)); return 0; } ``` ```c include int main() { int arr; printf("数组arr占用 %zu 字节 ", sizeof(arr)); return 0; } ``` ```c include include include int get_file_size(uint8_t *path, uint32_t *size) { FILE *fp = fopen((const char *)path, "rb"); if (fp == NULL) { printf("file open failed! "); return -1; } fseek(fp, 0, SEEK_END); *size = ftell(fp); fclose(fp); return 0; } int main() { uint32_t size = 0; uint8_t path = "./test.bin"; int ret = get_file_size(path, &size); printf("%s size = %u bytes, ret = %d ", path, size, ret); return 0; } ``` 需要注意的是,`sizeof`运算符返回的是一个`size_t`类型的值,因此在打印时需要使用`%zu`格式说明符。此外,`sizeof`运算符在编译时计算,因此它返回的是变量或数据类型在内存中占用的字节数,而不是在磁盘上文件的大小(除非特别指定了文件的内容大小)。计算变量的字节数
计算数组或结构体的字节数
计算指针或数组的大小
计算文件的大小