考虑这两个变量声明。这两个声明都有数据类型。这些数据类型的实际用途是什么。
int a;
MyClass b;
答案 0 :(得分:1)
答案 1 :(得分:1)
编译器将在堆栈上为这些变量分配内存。您无法分辨分配了多少内存,因为这取决于编译器和编译源代码的系统。除非使用指针,否则c ++中的变量总是在堆栈上分配。在这种情况下,它们被分配在堆上。
一般来说是的。 CPU不了解数据类型,最后您的代码被编译为在CPU上运行的二进制格式(一组CPU指令)。您也可以将程序编写为一组这些指令而不是c ++。然后你将使用Assembler。但即使是Assembler也是机器代码的商品接口,因为它也必须被编译成链接。
根据您的代码,编译器可能会对代码进行一些优化(例如复制省略)。
我不确定您的期望或尝试学习但我想您可以寻找一些编译器架构文献。