c++小问题

[复制链接]
查看11 | 回复3 | 2008-12-10 18:10:45 | 显示全部楼层 |阅读模式
请问,编译和运行到底各是什么意思?
为什么下面这个程序主涵数里没有调用,其还能正常运行呢?
#include"iostream.h"
class test
{
public:
test();
~test(){};
int i;
};
test::test()
{
i=25;
cout<<"here's the program output\n";
cout<<"let's generate some stuff\n";
for(int ctr=0;ctr<10;ctr++)
{
cout<<"couting at"<<ctr<<"\n";
}
}
test anobject;
main()
{
return 0;
}

回复

使用道具 举报

千问 | 2008-12-10 18:10:45 | 显示全部楼层
编译,运行程序这涉及到程序是怎样装入内存运行的。一般的,程序装入内存需要经过编译,链接,装入三个步骤。对于C++来说,编译后生成的是.obj文件,也就是所谓的目标文件,这时候的代码之间的逻辑功能是独立的。比如说你调用了库函数,但此时在你的主调函数中的二进制代码并没有与这个库函数的二进制代码发生关系,只有经过链接之后才会完成各个目标块之间的链接。这时候生成的就是.exe的可执行文件了(这是在WIndows下面的格式)。但是这时候的程序并不能运行,经过装入这一步后,程序被加载到内存中,这时程序就真正可以运行了。当然这几个步骤你只要用你的程序开发工具就可以完成。编译时只能够检查出程序的语法错误,而不能够检查出语义错误。比如说除数为0这就是一个动态语义...
回复

使用道具 举报

千问 | 2008-12-10 18:10:45 | 显示全部楼层
编译(compilation , compile)1、利用编译程序从源语言编写的源程序产生目标程序的过程。2、用编译程序产生目标程序的动作。 运行:
将编译的代码执行(进行相应的解释)因为程序是从主函数入口进行解释运行,你没有调用程序就不执行相应的代码,其它的代码,它视而不见,为什么不正常运行呀?...
回复

使用道具 举报

千问 | 2008-12-10 18:10:45 | 显示全部楼层
全局对象 test anobject; 构造函数执行的时候会有输出。全局对象的构造先于main函数的执行。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行