G++ 和 C++ 编译器编译出的程序 运行后内存使用不同 这是为什么?

在pku上的题
代码是一样的 g++下的源代码多加了一个头文件

分不多了 还请大家见谅 谢谢了 ^^
多的一个头文件是 #include <stdio.h>

内存分配,不同的编译器采用不同的方法,其速度,效率,内存大小都不一样。你搜一下malloc的算法。有一个大致的了解。
关于头文件的问题,不同的编译器,对标准的实现有所不同,可以理解的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-02-19
首先G++本身就是C++编译器。具体内存使用量这个得看它的计算规则了,另外还有编译器自身对代码的优化。
第2个回答  2010-02-19
如果那个多的头文件是 <iostream>的话,那么我能告诉你是因为io流对象占用了额外空间(在你不使用cout cin之类的时候就是白白开销)。

如果不是,那我就不知道了,毕竟你代码也没发,也没说是哪个头不一样。

参考资料:自己经验

G++ 和 C++ 编译器编译出的程序 运行后内存使用不同 这是为什么?
内存分配,不同的编译器采用不同的方法,其速度,效率,内存大小都不一样。你搜一下malloc的算法。有一个大致的了解。关于头文件的问题,不同的编译器,对标准的实现有所不同,可以理解的。

同一个程序,为什么用命令行、VC编译的结果会不同?
2、g++编译运行时或许使用堆栈实现函数调用,这两个函数分配的内存是一样的。vc的话,不同函数在内存中分配的是不同的地址,程序运行时,直接采用段内查找的方式找函数的。另外,c++的话不要使用.h的方式,g++是纯c++编译器,对于.h的写法是会给警告的;还有就是函数2没有赋初始值,在后续的vs编译...

数据类型占用字节
不同的编译器在对于数据类型占用字节的处理是有所不同的。例如,在C编译器中,int类型通常占用4个字节,而在G++编译器中,int类型通常占用2个字节。这是因为编译器对于数据类型占用字节的处理是由其内置的编译器指令所决定的,不同的编译器在设计时,会考虑到程序的编译效率、代码大小等方面的因素。3....

gcc和g 的区别
实际上,两者都能处理这两种语言,只是在处理不同后缀的文件时会有所不同。.c文件会被gcc识别为C程序,而.cpp文件则视为C++。尽管C++包含C,但语法要求更严格,比如包含stdio.h时,用gcc编译cpp文件会导致错误。因此,通常建议使用g++处理cpp文件,即使编译阶段是通过g++调用gcc,但这并不意味着cpp程序...

用c++写的构建窗口代码,用g++编译,运行后有窗口了,但那个黑黑的控制台界...
加参数 g++ -mwindows x.cpp -o x.exe

C++编译器(Dev-C)是否会自动内联函数 对于什么样的函数即使标记inline...
编译器比你更了解硬件,所以只要允许它优化,他会尽量进行优化。你使用的Dev C++集成开发环境使用的c++编译器就是G++。什么样的函数即使标记inline也无法内联?比如函数体太大、太复杂的话(比如包含多重循环、包含递归调用),对其进行内联得不偿失,这时编译器就会忽略inline关键字,VC++编译器提供了强制...

G++和GCC和C,C++有什么区别的
c和c++是编程语言,g++,gcc是编译器。 c++是c的扩展

G++和GCC和C,C++有什么区别的
G++和C++都是C++语言的编译器,二者基本相同。而GCC和C都是C语言编译器,而这差别实际也不大。尽管C++规范中兼容绝大部分C的用法和几乎全部函数,但毕竟还是有更改的地方。记住,如果你在学C或C++,不要过于迁就编译器的差别!研究语言比研究编译器(或编译环境)要重要的多!

OJ 里面的 G++ 和C++ 到底有什么区别, 为什么有时候G++能过,C++不能...
G++是C++的一个变种,没多大区别,你要是真正学竞赛的话每次都用G++交吧,noip和noi都是以这个作为编译器的。C和C++混写用C++过好一些,除非你报名NOI和NOIP时选的语言是C

GCC\/G++,ICC,Clang,MSVC,BCC等C\/C++编译器有什么特长和不足
clang编译速度快,但是貌似编译结果运行相对会慢。功能更新一般也比较快。g++编译速度比clang慢,编译结果运行貌似比clang快。功能更新稍慢。vc这几年没编译过大工程,感觉上编译速度在clang和g++之间。以过去的经验g++和vc编译结果运行速度差

相似回答
大家正在搜