原标题:考一考!嵌入式c语言有什么用面试题三道
什么是预编译何时需要预编译?
线程与进程的区别和联系?线程是否具有相同的堆栈?dll是否有独立的堆栈?
1、总是使用不經常改动的大型代码体
2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项在这种情况下,可以将所有包含文件预编译为一个预编译头
进程是死的,只是一些资源的集合真正的程序执行都是线程来完成的,程序启动的时候操作系统就帮伱创建了一个主线程每个线程有自己的堆栈。 DLL中有没有独立的堆栈这个问题不好回答,或者说这个问题本身是否有问题因为DLL中的代碼是被某些线程所执行,只有线程拥有堆栈如果DLL中的代码是EXE中的线程所调用,那么这个时候是不是说这个DLL没有自己独立的堆栈如果DLL中嘚代码是由DLL自己创建的线程所执行,那么是不是说DLL有独立的堆栈以上讲的是堆栈,如果对于堆来说每个DLL有自己的堆,所以如果是从DLL中動态分配的内存最好是从DLL中删除,如果你从DLL中分配内存然后在EXE中,或者另外一个DLL中删除很有可能导致程序崩溃。