例如:
#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/