文档章节

2014百度校园招聘软件研发类笔试(深圳)

SibylY
 SibylY
发布于 2013/09/28 20:34
字数 1512
阅读 126
收藏 1

时间:2013年9月28日。
地点:深圳
职位:软件研发
问答题:(10*3)

1.动态链接库(DLL)与静态链接库(lib)的优缺点:

静态链接库和动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都全部被直接包含在最终的EXE文件中,若使用DLL,该DLL不必被包含在最终的EXE中,EXE文件执行时可以”动态“地引用和卸载与这个EXE独立的DLL文件。

静态连接库优点:

(1)代码装载速度快,执行速度比动态连接库略快;但是影响启动时的效率

(2)直接和包含在EXE文件中,可以避免DLL地狱问题;

动态链接库优点:

(1)节省内存并减少页面交换;

(2)DLL与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定),更换DLL文件不会对EXE文件造成影响,极大提高了可维护性和可扩展性;

(3)不同编程语言编写的程序只要按照函数调用约定就可以调用同一个DLL函数。

不足:(1)使用静态链接生成的可执行文件体积交到,包含相同公共代码,造成浪费;

(2)使用动态连接库的应用程序不是自完备的,它依赖的DLL模块也要存在,如果使用载入时动态俩接,程序启动时发现DLL不存在,系统将终止程序并给出错误信息。而使用运行时动态链接,系统不会终止,但由于DLL中的导出函数不可用,程序会加载失败。

(3)使用动态链接库可能造成DLL地狱。

DLL Hell是指系统文件(DLL)的版本或兼容性问题造成程序无法正常运行,其覆盖了系统上原有的同一个DLL文件

另外,静态连接库中不能包含其他的动态连接库和静态链接库,但是在动态连接库中还可以包含其他的动态或静态连接诶库。

1)静态链接库的使用需要库的开发这提供生成库的.h投文件和.lib文件

2)因为静态链接库是将全部指令都包含入调用程序生成的EXE文件中。因此如果用的是静态链接库,那么也就不存在“导出某个函数提供给用户使用”的情况,要想用就得全要!要不就都别要!:

1、在VC++6.0中new一个名称为libTest的static library工程,并新建lib.h和lib.cpp两个文件

//文件lib.h
//#表明是预处理命令,可用于条件编译
//若LIB_H表示符未被#define命令定义则编译下面的程序段#else
#ifndef LIB_H
#define LIB_H
extern "C" int add(int x,int y);//声明为C编译、连接方式为外部函数
#endif
//文件lib.cpp
#include "lib.h"
int add(int x, int y)
{
  return x+y;
}



编译这个工程就得到了一个.lib文件,这个文件就是一个函数库,提供add功能。将头文件和.lib文件提交给用户后,用户就可以直接使用其中的add函数,

//indlude命令后, 一般使用<>符号调用库函数,使用”“调用自定义函数
#include <stdio.h>
#include "..\lib.h"
#pragma comment( lib, "..\\debug\\libTest.lib" )  //本文件生成的.obj文件应与libTest.lib一起连接
int main(int argc, char* argv[])
{
printf( "2 + 3 = %d", add( 2, 3 ) );
}
如果不用#pragma comment可以在vc++中用菜单选项设定,填入库文件路径。

(1)编写库的程序与编写其他程序区别不大,只是库不能单独执行;

(2)库提供一些可以给别的程序调用的方法函数,调用时必须以某种方式指明要调用;

库的调试与查看

由于库文件不能单独执行,F5(debug调试模式)或ctrl+F5(运行模式),在弹出对话框中输入可执行文件的路径来启动库函数的执行

对于动态连接库

1)DLL的编制与具体的编程语言与编译器无关

只要遵循约定的DLL接口规范和调用方式,用各种语言编写的DLL都可以相互调用。譬如Windows提供的系统DLL(其中包括了Windows的API),在任何开发环境中都能被调用,不在乎其是Visual Basic、Visual C++还是Delphi。

Windows目录下的system32文件夹中,kernel32.dll中的函数主要处理内存管理和进程调度;user32.dll中的函数主要控制用户界面;gdi32.dll中的函数负责图形方面操作;

一般的程序员都用过类似MessageBox的函数,其实它就包含在user32.dll这个动态链接库中。由此可见DLL对我们来说其实并不陌生。

 非MFC动态库不采用MFC类库结构,其导出函数为标准的C接口,能被非MFC或MFC编写的应用程序所调用;MFC规则DLL 包含一个继承自CWinApp的类,但其无消息循环;MFC扩展DLL采用MFC的动态链接版本创建,它只能被用MFC类库所编写的应用程序所调用。

2.轮询调度和抢占调度的不同



3.数据库的锁及其应用场景


算法题:(15*3)
1.输入任意正整数,比这个数大的最小不重复数(相邻两个数字不重复),例如1101是重复,1234不重复,1201不重复


2.从字符串(长度非常大)中找出最长回文子串


3.数轴上n个点(a0,a1,.....an),长为L的绳子最多能覆盖多少个点


系统设计:(25*1)
1.分布式缓存系统,容错和负载均衡,设计分布式缓存系统架构和分配策略

© 著作权归作者所有

共有 人打赏支持
SibylY
粉丝 29
博文 420
码字总数 335080
作品 0
海淀
程序员
百度2010暑期实习笔试面试全面备战

百度2010暑期实习笔试面试全面备战 百度2010暑期实习网申将于2010年5月29日截止。 笔试阶段 5月30日前,对于通过了简历筛选的申请人百度将会通过系统发送笔试通知。注册时请务必填写正确有效...

长平狐
2013/01/06
105
0
90 道名企笔试和算法题 (含答题讨论)

(点击上方公众号,可快速关注) 节选自「算法爱好者」微信公号的精选算法题和名企笔试题。 问:如何获取题目列表? 答:① 长摁二维码关注「算法爱好者」,② 然后给它发送 名企笔试 或 算法...

Python开发者
01/21
0
0
九月十月百度,迅雷,华为,阿里巴巴最新校招笔试面试二十题(10.12)

九月十月百度,迅雷,华为,阿里巴巴,最新校招笔试面试二十题 题记 本博客自2010年10月11日开通以来,已经帮助了一大批人找到工作,特别是连续三年在每一年的9、10月份陪伴了至少三届毕业生...

mickelfeng
2013/10/12
0
0
IT公司(只是看看,不可全信)

最近终于把自己给卖了,这几个月来自己陆陆续续的面试的有30多家公司,主要是IT公司,准备把今年我所知道的IT公司的待遇薪水总结一下,这里面包括我自己找工作所知道的,我们系的其他同学已经...

颜建海
2014/05/07
0
4
(转)谈谈我的面经(华为、锐捷、十所、百度、腾讯、360、建行、EMC)

谈谈我的面经(华为、锐捷、十所、百度、腾讯、360、建行、EMC) 首先,感谢那些默默奉献出自己宝贵面试经验以及面试题库的童靴,你们的经验和题库让我得到很多有价值的信息,也得到丰厚了回...

颜建海
2014/07/06
0
3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77

解决办法: 下面就给大家一个正确的姿势在Ubuntu上安装Nvidia驱动: (a)首先去N卡官网下载自己显卡对应的驱动:www.geforce.cn/drivers (b)下载后好放在英文路径的目录下,怎么简单怎么来...

AI_SKI
今天
0
0
深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
今天
0
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
今天
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
2
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部