3 fl2011sx

尚未进行身份认证

暂无相关描述

等级
TA的排名 11w+

谁说C语言不能面向对象(之二:封装)

从这节开始,我们就要正式开始用C语言实现面向对象了。不过,受限于C语言的语法,实现OO还是需要很多编程技巧的。在此之前,我想先介绍一种可以算得上是捷径的方法吧。其实用C语言来实现OO,我们并不是第一个。说起来,这也算挺成熟的技术了,成熟到都已经过时了。有一个很著名的程序语言,就是利用C语言,来实现OO的。这就是大名鼎鼎的Objective-C,苹果公司曾经的御用开发语言,直...

2019-03-02 00:59:39

谁说C语言不能面向对象(之一,前言)

看到题目,我相信一定有很多人觉得,嗯,我确确实实是个逗比。各种权威资料上写得非常清楚,C语言是面向过程的语言,C++,Java,OC,Python,JS等这些才是面向对象的语言。这个逗比,竟然觉得C可以面向对象,看来他真的是个逗比。所以我在此先声明一下我起这个标题,以及,写这个系列文章的初衷。我并不是挑战权威,说C是面向对象的语言。确实,C的确是面向过程的语言,其中并没有包括任...

2019-03-01 22:03:40

逗比老师带你搞定C语言指针

哈喽!各位同学们大家好哇!逗比老师又回来了!好久都没有见到大家了真是想死我了!最近呢,我有一个亲戚,还在读大学,正在学C语言,然后他在我的博客上看到了我之前写过的C教程,结果没有几篇就戛然而止了,于是就攒了很多问题来问我。这里给大家抱歉哈,真的不好意思,逗比老师实在是太忙了,顾不上给大家更新详细的C教程,这个后面慢慢来。不过有些重要的知识点还是可以单独拉出来给大家重点攻克一下的...

2019-02-26 22:17:26

Swift和C/Objective-C混编超详解

  文章可能写得有点晚了,Swift语言已经诞生很久的时间了,现在它已经挤掉了OC很大的市场了,但是,总是存在很多老项目,或者是第三方库还没有完全翻译成Swift,因此,混编还是需要的。虽然现在详解可能有点晚,不过还是希望能写一篇关于混编的详细讲解,方便那些遇到困惑的童鞋学习和查阅。  无论是在OC工程里插入Swift,还是在Swift工程里插入OC,其实都没什么区别,因为Swift编...

2018-11-18 01:37:11

macOS开发中网络连接或数据库连接收到错误“Operation not permitted”的解决方法

  在给出解决方案之前,我一定要好好吐槽吐槽,网上对于原生态的macOS开发的资料实在实在是太少了,关于这方面的问题在网上怎么搜都搜不出来,唯一的参考资料就是苹果开发者官网,但是对于我们大多数英语不是很好的开发者来说,阅读起来难度太大,而且,针对一些配置之类很细节的问题,在上面又没办法定位到,因为它只给出的是每个模块如何使用,却没有给出在什么样的场景下遇到什么样的问题应该如何解决。  ...

2018-04-25 13:25:31

sqlite.swift应用简介

SQLite3是一款非常轻便易用并且开源的嵌入式数据库,而SQLite3官方所提供的API接口是用C来提供的,如果用swift进行macOS或是iOS开发的话,就会很不方便,因此有一个国外的大神用swift封装了SQLite提供的API,并且分享在了GitHub上,称之为sqlite.swift,并且最新版本也使用了swift3的语法。原版的说明文档在此:https://github.com/st

2017-06-22 11:13:53

macOS开发中NSWindow, NSWindowController, NSView, NSViewController的关系

macOS使用的Cocoa框架,的确没有iOS使用的CocoaTouch那么智能好用。有些地方逻辑很奇怪,还有一些看似很正常的功能它却没有提供,还需要自定义。这里就有一个很头疼的问题,关于这四个类的问题,他们之间到底是什么关系,如果摆脱了storyboard如何用代码实现?今天就来简单介绍一下。Xcode所提供的默认模板包括一个WindowController,还有一个ViewContr

2017-06-14 23:32:16

在macOS开发中使用Touch Bar

苹果在2016年秋天发布了新款MacBookPro,其中有一个新的功能就是用TouchBar来代替了传统的功能键(F1-F12),它功能强大,开发者可以将其设计成各种样式,并允许用户自定义,为用户和笔记本电脑之间的交互添加了新的方式。个人用过之后,还是非常不错的,尽管它实现的功能可以用快捷键或是鼠标操作来代替,但是在实际使用中,确实是直观并且方便了许多。  当然,我们并不只能是用用就罢

2017-06-09 02:03:21

009-彩色的显示器

上次讲到了引用C语言开发的原因以及如何使用C语言与之前的汇编头结合,这次,正式开始C语言的开发。      由于我们已经指定了C语言编写的入口函数为OSMain(),那么,就从这个函数开始写吧。既然要写一个函数,我们首先得确定这个函数的参数和返回值类型。如何确定呢?那得看谁会来调用这个函数,又想从这个函数里获得点什么。由于我们是将编译好的这个程序和之前写的汇编头相拼接的,那么,调用这个函数的

2017-03-09 00:02:10

008-C语言开发的开始

上次介绍了如何进入保护模式以及完成程序的跳转,那么这一次我们就将转向高级语言编写主要的程序代码。但是在这之前我们必须考虑一个问题,那就是在汇编语言中,你可以自由指定你写的程序的加载和读取位置(至少也是可以指定相对位置),但是像C语言这样的高级语言恐怕就没这么简单了。使用C语言编写程序的时候,编译器会自己去识别栈区和堆去,自己来决定加载位置,具体的方案取决于编译器的选择以及优化参数。这算得上是C语言

2017-03-07 20:58:24

对电子游戏的平衡性和可玩性的直观感受和对游戏生涯的憧憬

说道电子游戏(指的是电脑游戏和手机游戏),我相信大家都能有所分享。虽然说对于我本人而言,其实游戏玩得真心不多。但是,至少在这十几年来,还是有一些值得诉说和分享的东西。    在我两岁的时候(1998年……好吧,暴露年龄了),家里就有电脑了,那时候这还算比较稀罕的东西,父亲希望我可以早早接触这些代表新时代的产物,所以我在2岁的时候就开始接触计算机了。不过,那么小的时候到底能学会些什么呢,无

2017-03-07 00:24:33

007-进入保护模式

上次讲解到了OS内核的开始以及在进入保护模式之前需要了解一些概念。首先给出这部分内容的完整代码,然后分别来介绍。BOTPAK EQU 0x00280000 DSKCAC EQU 0x00100000 DSKCAC0 EQU 0x00008000 CYLSEQU0x0ff0LEDSEQU0x0ff1VMODEEQU0x0ff2SCRNXEQU0x0f

2017-03-06 13:36:28

006-继续编写操作系统

上次我们完成了ipl的阶段性目标,现在主要开始着手写操作系统内核。由于在实模式下能够使用的内存实在太少,而且对硬件也而是一种浪费,因此,我们要写一个32位内核的操作系统,所以,就要先进入保护模式。但是,由于在保护模式下不能调用BIOS,因此,要在引入保护模式之前,把可能需要用到的信息保存在内存中。我们指定了一些位置来存放相对应的信息,主要是关于屏幕的信息以及键盘指示灯的信息,代码如下:CYLS

2017-03-05 16:15:43

1.4 复合数据类型和枚举类型

逗比:呜啦啦啦啦啦~呜啦啦啦拉拉~各位小伙伴们大家好呀,欢迎来到暴走大……棒槌:CUT!逗比:哈?怎么了?第五季的出场不够帅?棒槌:我说你拿错剧本了吧……逗比:哦?是吗?啊呀!!!还真是咧,这是圣诞老王的剧本……棒槌:我说你是来逗比的吗?逗比:咳咳,明明是你昨天嫌我太正经,要我逗比一点的,一点都不体谅人家的辛苦。棒槌:本来就是,你去看看你同时更新那个操作系统的文章,简直

2017-03-02 17:28:09

1.3逗比又回来了!

棒槌:逗比啊,我说你这一年到底上哪去了,我还以为你变成代码被crush了!逗比:这个真的实在实在实在是很抱歉啊,去年突然接了一个活,然后就去忙活,后来跑去进修,再后来就过年了,这不一直到这会。棒槌:你倒是到处逍遥去了,你让你这些学生怎么办啊,哪有开课一年都不带更新的啊,很多学生都等不下去了的说,有多少人像我一样一直很相信你地等你啊?逗比:你不刚还说我变成代码被crash掉了么,这会又在

2017-03-01 23:28:00

005-完成ipl

上次完成了启动盘,我们已经成功把启动区加载到了内存中,当然了,这512字节的空间肯定是不可能够我们写一个完整的操作系统的,所以,我们操作系统的其他部分肯定得在别的地方写,那么,ipl的任务就应该是把软盘这1440KB的内容全部加载到内存中,不过这里有一个相当严重的问题,就是我们在实模式下,只有20位寻址空间,换句话说,我们只能访问1MB的内存,所以暂时还没办法把所有的数据都放到内存中,暂时我们先只

2017-03-01 22:38:39

004-写一个真正的启动盘

上次说到了使用软盘启动计算机的注意事项,那么,我们就来实际的操作一下,写一个真正可以用于启动计算机的启动盘。      首先,我们打开BZ,创建一个文件,然后按照以下方式来书写:后面就全是0了,因为还没写东西,注意要一直写满1440KB      当然,这样的话还不能真正启动计算机,因为指令不对,我们说,当计算机检查了磁盘格式,以及510和511字节的内容后,会执行

2017-03-01 20:09:58

003-软盘启动原理

软盘,这东西虽然现在很罕见了,但是在20年前,软盘是主要的外部存储器,再早一点的时候还没有硬盘,所有的数据都是存放在软盘上的,当然也包括操作系统。我们之所以仍然选择软盘作为我们操作系统的启动介质,是因为软盘有着其特点和明显的优势。如果我说硬盘,你可能第一反应会问我多大的硬盘,因为硬盘的种类很多。但是软盘就没有这么麻烦了,普及过的软盘就只有两种而已,而最常用的也是使用时间最长的,就是3.5英寸软盘,

2017-02-28 23:20:34

002-发生在操作系统之前的事情

操作系统这个概念应当来说,在计算机的层析结构中处于正中间的位置。计算机本身是由一系列电子元件和芯片组成,这些根据相应规则组成的电子电路就形成了计算机硬件。对于逻辑电路的设计来说,其实我们任何的需求都是可以直接用硬件来实现的,但是,由于我们几乎无法实现预测到计算机将要完成的所有事情,因此,纯硬件编程几乎是不可能的,即便是可以再一定的范围之内实现纯硬件结构,硬件的成本也是相当惊人的,因此,我们有必要找

2017-02-28 20:13:44

001-自编写操作系统系列文章说明

本系列文章是本人自己学习操作系统底层实现的笔记、成果和心得的记录。      学习该部分初始阶段的主要参考资料是由日本程序员川合秀実(かわいひでみ)著作的《30日でてきる!OS自作入門》,用到了书的附件中很多软件和工具,在这里对川合先生以及该书的翻译人员表示衷心的感谢。      虽然有参考资料,但是本人在绝大多数情况下都不是直接照搬作者的源码或者引导思想,主要是本人在学会了该部分的理

2017-02-28 19:27:53

查看更多

勋章 我的勋章
    暂无奖章