iOS开发笔试面试- 编译原理

C/C++的编译器是集成的,编译一边分为4个过程:

1、预处理阶段 : 从hello.c变成hello.i文件,预处理一般就是将include或者define之类的东西,插入到代码中;

2、编译 : 从hello.i 变成hello.s文件,过程:检查语法、规范,在确定无误之后,将代码翻译成汇编语言。

3、汇编 : 从hello.s 变成hello.o文件,过程:将汇编代码转换成二进制文件。

4、连接 : 根据目标文件以及库文件,完成链接之后,生成可执行文件。

有用的地方:我们在开发的过程中,command+R的时候,看到编译提示的错误,可以快速定位到,到底是在那个阶段出现了问题,从而迅速解决问题。

时间: 2024-08-08 21:52:08

iOS开发笔试面试- 编译原理的相关文章

iOS开发笔试面试- runtime的原理(一)

首先先说一个简书作者的博客,把runtime入门讲得够清晰. http://www.jianshu.com/p/25a319aee33d Objective-C语言使用了面向对象特性和消息转发机制. 一:Runtime的数据结构: 解析:Root class其实就是NSObject,NSObject是没有超类的,所以Root class 的superclass指向nil: 每一个Class都有一个isa指针指向唯一的Meta class: Root class(meta)的superclass指

iOS开发笔试面试- KVC/KVO简单使用

转自:http://my.oschina.net/caijunrong/blog/510701 一.对于KVC模式(Key Value Coding): 1.其实在实际开发中用得比较多得就是:接收到json数据之后,通过解析,解析成NSDictionary,然后再把字典对应的字段建立一个Model,在Model里面自定义一个类方法+(instancetype)modelWithDictionary:(NSDictionary *)keyDictionary方法中调用 [self setValue

iOS开发笔试面试- KVC

对于KVC模式(Key Value Coding):其实在实际开发中用得比较多得就是:接收到json数据之后,通过解析,解析成NSDictionary,然后再把字典对应的字段建立一个Model,在Model里面自定义一个类方法+(instancetype)modelWithDictionary:(NSDictionary *)keyDictionary方法中调用 [self setValuesForKeysWithDictionary:jsonObject]; 从而达到我们想要的效果,将字典装成

iOS开发笔试面试- 数据类型

sizeof() int :4个字节 short int: 2个字节 long long int: 8个字节 float:4个字节 double:8个字节 char: 1个字节 char *: 8个字节 NSString: 8个字节 例子: struct baseValueStruct{ int age; char sex; float point; long long int momey; }; struct baseValueStruct baseStruct = {14, '2', 3.2

Web前端开发笔试&面试_01(mi:)

—— (al_me16041719002000) begin—— 1.(单选)下面哪个方法是String对象和Array对象都有的? A.splice B.split C.replace D.concat E.sort F.join 2.(单选)以下说法错误的是? A.IE8支持 :before B.IE8支持 :after C.IE8支持 :first-child D.IE8支持 :last-child E.IE8支持 ::before F. IE8支持 ::after 3.(单选)以下框架采

iOS开发-面试总结(十二)

1. 风格纠错题 修改方法有很多种,现给出一种做示例: 下面对具体修改的地方,分两部分做下介绍:硬伤部分和优化部分 .因为硬伤部分没什么技术含量,为了节省大家时间,放在后面讲,大神请直接看优化部分. 优化部分 1)enum建议使用 NS_ENUM 和 NS_OPTIONS 宏来定义枚举类型,参见官方的 Adopting Modern Objective-C 一文: 1 2 3 4 5 //定义一个枚举 typedef NS_ENUM(NSInteger, CYLSex) {     CYLSex

iOS开发你不知道的事-编译&链接

对于平常的应用程序开发,我们很少需要关注编译和链接过程.我们平常Xcode开发就是集成的的开发环境(IDE),这样的IDE一般都将编译和链接的过程一步完成,通常将这种编译和链接合并在一起的过程称为构建,即使使用命令行来编译一个源代码文件,简单的一句gcc hello.c命令就包含了非常复杂的过程! 正是因为集成开发环境的强大,很多系统软件的运行机制与机理被掩盖,其程序的很多莫名其妙的错误让我们无所适从,面对程序运行时种种性能瓶颈我们束手无策.我们看到的是这些问题的现象,但是却很难看清本质,所有这

iOS开发ffmpeg SDK 编译和集成

FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.它提供了录制.转换以及流化音视频的完整解决方案.同时,FFmpeg是一套跨平台的方案,所以我们可以在iOS开发中使用它来进行一些视频与GIF的开发. 接下来,我们从编译FFmpeg开始,到使用FFmpeg,再到使用中的一些注意事项进行总结. 一.编译FFMpeg 在这个过程中,我们需要以下几个资源: 1.gas-preprocessor 2.yasm 3.FFmpeg-iOS-build-script 1.ga

H3C软件开发笔试面试总结

注:我目前是陕西师范大学计算机科学学院本科生,在西安参加笔试以及面试 先是笔试,我选择的是JAVA方向,笔试选择题目主要是一些基础性的题目,然后简答题问了final.finally.finallize的区别,以及修饰符有几种各有什么区别,还是比较基础的,编程题第一道是求[200,300]内的质数,第二道就是快排. 总的来说笔试相对比较重视基础,客观来说难度一般,但是由于我转JAVA的时间也不是很长,选择中一些考察语言特性的题目还不会,这也是这次笔试中暴露出来的问题. 然后是面试,面试在笔试一周后