小弟使用的是VC6.0,有一个很小的编译问题不理解
对一个原本正确的程序,加上一个不是严重错误的语句,再编译的时候会提出警告。(比如加上一个使用未初始化变量的语句就会出现类似这样的错误:
warning C4700: local variable 'n' used without having been initialized)这本是应该的,但是当我把这句话注释掉再重新编译的时候为什么还提出同样的警告呢?而再继续编译一遍就不再提错了。
这是为什么呢?为什么注释掉之后的第一次编译还会警告?
对一个原本正确的程序,加上一个不是严重错误的语句,再编译的时候会提出警告。(比如加上一个使用未初始化变量的语句就会出现类似这样的错误:
warning C4700: local variable 'n' used without having been initialized)这本是应该的,但是当我把这句话注释掉再重新编译的时候为什么还提出同样的警告呢?而再继续编译一遍就不再提错了。
这是为什么呢?为什么注释掉之后的第一次编译还会警告?
解决方案 »
- Com调用程序运行成功,但退出后Windows弹框报一个未知错误,为什么?
- 利用同一个socket,分别建立发送线程和接收线程进行读写,需要对socket进行同步吗?我认为可以把socket看成一个文件,这样的话是需要同步
- 关于安装程序初始化sql server 的问题。
- 在vc6.0中怎样使用命令?
- 送分!!!
- CInternetSession::OpenURL打开不了,请看看有什么原因?
- 这么难懂的提示信息!!
- 问一个有关IIS的编程接口
- CListView类,如何知道双击的是某一条item,二不是空白处?
- 请教大侠,我刚学VC,请问如何用VC的资源编辑器打开*.dll文件进行编辑,刚学VC尽量详细点,谢谢了
- 菜单为什么会变灰
- 请问我只有线程的ID,如何向这个线程发送消息(这个线程有消息机制)???
再次编译不出警告是因为本文件没有作过修改,不再重新编译,当然不出警告了
是因为你的源文件不再被编译,因为有警告的源文件,只要没有错误,就不会被再次编译,
再次编译的时候,只会利用它生成的obj进行link.============================================================================
http://www.betajin.com/alphasun/index.htm 给我发信息请附带原帖地址
http://alphasun.18en.com/ http://shakingtoolkit.9126.com/
DocWizard C++程序文档自动生成工具 | Wave OpenGL | HttpProxy | AjaxParser词法分析
有错误的代码是不能通过编译的,所以Error信息每次都会出来,而且有了Error信息,是不会产生连接结果的。而Warning信息一般可以通过编译,可以产生连接结果。
2) 对于Warning信息,你不去处理,编译器才不管你呢,谁叫你不管的。
我也没有学过编译原理,但是这个好像只是编译器实现的细节,不是原理性的东西,自己体会吧。
不把警告信息保留下来是有道理的,因为warning不是error,不一定会产生错误,而且用户不立马修改它,编译器便可以认为这些warnging不是很重要,老是列出来反而会让人觉得不方便,毕竟从一堆信息里找需要的信息是很麻烦的。