c++ - 内存浪费?如果 main() 应该只返回 0 或 1,为什么 main 声明为 int 而不是 short int 甚至 char?

标签 c++ c memory types allocation

例如:

#include <stdio.h> 
int main (void)                         /* Why int and not short int? - Waste of Memory */ 
{
     printf("Hello World!");
     return 0; 
}

为什么main()常规定义为int类型,在32位上分配4个字节的内存,如果通常只返回0或1,而其他short int(2 字节,32 位)甚至 char(1 字节,32 位)这样的类型会节省更多内存吗?

这是在浪费内存空间。

注意:问题不是给定线程的重复;它的答案只对应于返回值本身,而不对应于它在显式焦点处的数据类型。

问题是针对 C 和 C++ 的。如果这些之间的答案发生变化,请分享您的智慧,并提及特别关注哪种语言的上下文。

最佳答案

通常汇编程序使用它们的寄存器返回一个值(例如 Intel 处理器中的寄存器 AX)。 int类型对应机器字即不需要将例如char类型对应的byte转换为机器字。

事实上,main 可以返回任何整数值。

关于c++ - 内存浪费?如果 main() 应该只返回 0 或 1,为什么 main 声明为 int 而不是 short int 甚至 char?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58337641/

相关文章:

c++ - Qt 调试显示行号

c - fget(c) - 在保存前一个字符的同时扫描下一个字符

c - 如何安全地排出标准输入?

C++ : Segmentation fault (core dumped) On linux OS

c++ - 使用 shared_ptr : C++ 管理多个对象

c++ - 调试断言错误 - 列表迭代器不兼容

c - 竞争条件和互斥体

.net - Oracle.ManagedDataAccess 库中可能存在内存泄漏

java - Java 中的多态性、数据类型和内存

c++ - 使用声明的模板化参数实例化嵌套类模板