84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
这是我看书的时候,想到的一个问题。不懂为什么某种情况下不需要编译代码也行(之前编译过,然后修改),平时自己修改了代码,都是要重新编译运行的。
ringa_lee
不需要编译指的是和修改不关联的文件。比如有以下文件:common.h、file1.h、file1.c、file2.h、file2.c。其中,file1.c中include了common.h和file1.h,file2.c中只include了file2.h。编译之后file1.c输出链接文件file1.o,file2.c输出链接文件file2.o。那么如果是修改了common.h的话file1.c和file2.c都需重新编译,但是如果只是修改了file1.h的话就只有file1.c需要重新编译。书上讲的应该是这个意思。
哦,补充一下,编译只是生成链接文件(如上面提到的.o文件),链接(link)之后才最终生成可执行文件,修改源代码都会导致重新生成可执行程序(也就是重新link),但并不是所有的链接文件都会重新生成,换句话也就是不是所有的.c文件都会被重新编译。
不编译咋运行啊
C++改了代码就要重新编译运行的。除非你改了一下又改回来编译前的代码,然后IDE还有这个识别功能,那或许不用吧!
我理解,你这里说的“不需要编译”是如果项目中引用了其他库,那么当这些库的内部实现(.c/.cpp)发生变化,但接口(.h)没有变时,该项目不需要重新编译,(但发生变化的库无论如何是需要重新编译的),只需要链接新的库就可以了。
不需要编译指的是和修改不关联的文件。
比如有以下文件:
common.h、file1.h、file1.c、file2.h、file2.c。
其中,file1.c中include了common.h和file1.h,file2.c中只include了file2.h。
编译之后file1.c输出链接文件file1.o,file2.c输出链接文件file2.o。
那么如果是修改了common.h的话file1.c和file2.c都需重新编译,但是如果只是修改了file1.h的话就只有file1.c需要重新编译。书上讲的应该是这个意思。
哦,补充一下,编译只是生成链接文件(如上面提到的.o文件),链接(link)之后才最终生成可执行文件,修改源代码都会导致重新生成可执行程序(也就是重新link),但并不是所有的链接文件都会重新生成,换句话也就是不是所有的.c文件都会被重新编译。
不编译咋运行啊
C++改了代码就要重新编译运行的。除非你改了一下又改回来编译前的代码,然后IDE还有这个识别功能,那或许不用吧!
我理解,你这里说的“不需要编译”是如果项目中引用了其他库,那么当这些库的内部实现(.c/.cpp)发生变化,但接口(.h)没有变时,该项目不需要重新编译,(但发生变化的库无论如何是需要重新编译的),只需要链接新的库就可以了。