c - 如果 char 按标准为 1,为什么要写 `sizeof(char)`?

标签 c coding-style

我正在做一些 C 编码,在阅读了一些 C 代码后,我注意到有像

这样的代码片段
char *foo = (char *)malloc(sizeof(char) * someDynamicAmount);

所以我想问一下为char数组分配内存的C-ish方法是什么?使用 sizeof(char) 并假设代码可以针对任何标准更改进行 future 验证,还是省略它并直接使用数字?

最佳答案

更多的 Cish 方式将是

char* foo = malloc(someDynamicAmount * sizeof *foo);

引用变量而不是类型,因此不需要类型。 并且没有强制转换 malloc 的结果(这是 C++ 风格的)。

关于c - 如果 char 按标准为 1,为什么要写 `sizeof(char)`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7243872/

相关文章:

c++ - 在容器中的每个元素上调用成员函数

java - 用于拼写和 javadoc 验证的检查工具

c - 排序算法的时间复杂度

c - xc8 警告 : initial value for var differs

c++ - 标准应该在源代码中指定还是在 CPPFLAGS 中指定?

python - 更多Python主义 : prefix subdirectory with parent folder name?

c# - C# 中的类链接最佳实践

c - 如何将 SOCKET (HANDLE) 从非托管 C 程序传递到 .NET 子进程?

C语言转MIPS。斐波那契数

coding-style - 单例和谷歌编码风格