This commit is contained in:
许大仙 2024-08-12 08:16:57 +08:00
parent c78efc57ea
commit 127de64577

View File

@ -520,8 +520,12 @@ sizeof(表达式)
> [!NOTE]
>
> * ① 表达式可以是任何类型的数据类型、变量或常量。
> * ② 返回某种数据类型或某个值占用的字节数量,并且 `sizeof(...)` 的`返回值类型`是 `size_t`
> * ② 返回某种数据类型或某个值占用的字节数量(内存中的存储单元),并且 `sizeof(...)` 的`返回值类型`是 `size_t`
> * ③ 在 `printf` 中使用占位符 `%zu` 来处理 `size_t` 类型的值。
> * ④ 之前也提过C 语言没有一个统一的官方机构来制定或强制执行其标准而是由一个标准委员会负责制定标准。不同的编译器可以选择部分或完全遵循这些标准。因此C 语言的编译器实现可能会有所不同,这就要求程序员在编写跨平台代码时特别注意数据类型的大小和布局。
> * ⑤ 与 C 语言不同Java 和 JavaScript 等语言的标准是强制性的。在 Java 语言中,`int` 类型在所有平台上都是 4 个字节,无论是在 Linux、macOS 还是 Windows 上。因此,这些语言不需要像 C 语言那样依赖 `sizeof` 来处理不同平台上的数据类型大小差异,因为编译器已经在底层处理了这些差异。
>
> 总结:`sizeof` 运算符在 C 语言中的重要性在于它为程序员提供了一个处理不同平台上数据类型大小差异的工具,而 Java 和 JavaScript 由于其标准化的实现,不需要 `sizeof` 这样的工具来保证跨平台的一致性。