Welcome 微信登录

首页 / 操作系统 / Linux

从函数指针数组的运用来看程序结构化设计

从函数指针数组的运用来看程序结构化设计

一、基础研究我们之前从底层研究了C语言,也学习了C语言的组成部分和使用方法,但是c语言是一门编程语言,它是要用来编写程序的。要编写一个好的程序,首先要弄清这个程序要干什么,也就是需求分析,之后要思考及确定实现这个目标的方法,怎么样让程序简短、高效、易懂、可移植、方便维护和修改,这涉及到要怎么实现算法、怎样放置数据和代码、怎么写函数、怎么调用函数等等,这就是程序设计。程序设计是一个程序员综合实力的体现,要想设计出好的程序,要有程序设计思想。我们来看程序1,程...
从函数指针数组的运用来看程序结构化设计(2)

从函数指针数组的运用来看程序结构化设计(2)

一、基础研究观察这两个程序:Menu.h:Ues.c:程序执行的结果是在屏幕上显示一个三行的菜单:用户按键选择菜单的某一项可以在屏幕上显示该项所表示的彩色字符串:它是如何实现的呢?我们先来看看menu.h。程序构造了一个结构体,并将菜单的相关信息都放在结构体里。这里有个问题:我们之前定义结构体都是用struct类型名,但是这里是用typedefstruct,这里是给struct的结构体起了一个名字为后面的ItemType,如果是struct加类型名则结构体...
Python来做应用题及思路

Python来做应用题及思路

最近找工作头疼没事就开始琢磨python解应用题应该可以,顺便还可以整理下思路当然下面的解法只是个人理解,也欢迎大佬们给意见或者指点更好的解决办法等于优化代码了嘛,也欢迎大家出点小题目做也可以,如果可以我也会定期专门来做应用题(你弟弟或者你表弟或者外甥等来问应用题在也不用算了,把思路和答案给他让他自己一边研究去。)好了先来看如下题目:1.firstblood题目一:55名学生围成一个圆圈站好,并按照顺时针的方向依次编号1~55。然后1开始报数,隔一个人3号...
Python快速生成注释文档的方法

Python快速生成注释文档的方法

今天将告诉大家一个简单平时只要注意的小细节,就可以轻松生成注释文档,也可以检查我们写的类方法引用名称是否重复有问题等。一看别人专业的大牛们写的文档多牛多羡慕,不用担心我们可以让python为我们生成基本满足的说明文档,一来可以提高代码整体阅读性,二来可以将代码的整体结构看着也更清晰,这样在交接的时候可以省很多麻烦,其它同事在接手你工作的时候也不会一行行去问你这是什么那是什么的,因为注释已经很直观的表述了,在整合的时候可当说明文档给客户简单说明(主要是给你B...
Python基础中所出现的异常报错总结

Python基础中所出现的异常报错总结

今天我们来探索python中大部分的异常报错首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等。打个比方很多公司年终送苹果笔记本,你程序话思维以为是(MAC)电脑笔记本,结果给你个苹果+笔记本。。。首先类型不对,数量也不对。先来看几个常见的报错如下:NameError命名错误 原因是: name "a" is not defined 命名a还未定义 简单来说就是程序不知道a带表谁 如果a=1 ...
实现一个基于tcc/tlink的简单的编译链接工具

实现一个基于tcc/tlink的简单的编译链接工具

一、基础研究在这里我们需要提供一套新的c语言开发工具cc,它支持的c程序不是从main开始运行而是从CMain开始运行。书上已经对该工具程序进行了需求分析:(1)要在屏幕中间显示彩色的字符串;(2)等待用户输入,按下任意键后开始运行程序员写的程序。也给出了由需求分析进行的功能分析:代码文件main.obj实现打印字符串、等待输入、调用程序的功能。编译链接文件cc.exe实现调用tcc编译文件、调用tlink连接文件的功能。新建文件夹,在其中实现main.c...
用extern关键字使程序更加清晰

用extern关键字使程序更加清晰

一、基础研究之前基于tcc、tlink实现一个新的编译连接工具cc.exe,用到的文件有cs.lib、c0s.obj、main.obj,其中main.obj是我们自己加入的文件,它可以实现开始显示彩色字符串“welcometoc”,等待用户按键后执行程序,现在我们要把它替换为下面的程序编译成的obj文件:观察程序,发现在定义指针code和函数指针f的时候用到了extern关键字。extern可置于变量或者函数前,以表示变量或者函数的...
C语言里用结构体和指针函数实现面向对象思想

C语言里用结构体和指针函数实现面向对象思想

一、基础研究观察如下两个程序a.c和b.c:A.c:B.c:这两个程序都是要实现在屏幕上第10行40列打印一个绿色的字符c:这两个程序的数据组织方式是一样的,都是使用结构体,而且对共性和个性的分离的思路也是一样的,都是将共性封装在main函数里,将个性实现在子函数里。但是a.c和b.c封装和分离的角度是不一样的,a.c没有将字符和颜色的属性赋值分离出来,而只是将显示功能分离出来,b.c将字符、颜色的赋值和显示功能都分离了出来,用三个子函数实现,并将相对应的...
Java消息队列--JMS概述

Java消息队列--JMS概述

1、什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。我们可以简单的理解:两个应用程序之间需要进行通信,我们使用一个JMS服务,进行中间的转发,通过JMS 的使用,我们可以解除两个程序之间的耦合。2、J...
消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ

消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ

Dissecting Message Queues概述: 我花了一些时间解剖各种库执行分布式消息。在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量.。消息队列已经被分为两组:brokerless和brokered。 brokerless消息队列是对等的,没有中间商参与信息的传递,而brokered队列有一些服务器端点之间。性能分析的一些系统: Brokerless nanomsg ZeroMQ Bro...
Java 时间类-Calendar、Date、LocalDate/LocalTime

Java 时间类-Calendar、Date、LocalDate/LocalTime

1、Date 类 java.util.Date是一个“万能接口”,它包含日期、时间,还有毫秒数,如果你只想用java.util.Date存储日期,或者只存储时间,那么,只有你知道哪些部分的数据是有用的,哪些部分的数据是不能用的。 1.1 Date的构造方法 Date 是我们使用的最多的一个日期类,Date提供的构造方法在官方API中有一下几种: Date 类提供了多种构造方法,但是目前有很多方法都已经不建议使用public ...
深入Java虚拟机--判断对象存活状态

深入Java虚拟机--判断对象存活状态

程序计数器,虚拟机栈和本地方法栈 首先我们先来看下垃圾回收中不会管理到的内存区域,在Java虚拟机的运行时数据区我们可以看到,程序计数器,虚拟机栈,本地方法栈这三个地方是比较特别的。这个三个部分的特点就是线程私有的,它们随着线程的创建而诞生,也因线程的结束而灭亡。栈中的栈帧随着方法的进入和退出会有条不絮的执行着进栈和出栈。每一个栈帧中分配多少内存,基本上是在类结构确认下来的时候就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过...
Java 序列化与反序列化

Java 序列化与反序列化

1、什么是序列化?为什么要序列化? Java 序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程。 我们都知道,在进行浏览器访问的时候,我们看到的文本、图片、音频、视频等都是通过二进制序列进行传输的,那么如果我们需要将Java对象进行传输的时候,是不是也应该先将对象进行序列化?答案是肯定的,我们需要先将Java对象进行序列化,然后通过网络,IO进行传输,当到达目的地之后,再进行反序列化获取到我们想要的对象,最...
浅谈单片机中C语言与汇编语言的转换

浅谈单片机中C语言与汇编语言的转换

做了一单片机设计,要用C语言与汇编语言同时实现,现将这次设计的感受和收获,还有遇到的问题写下,欢迎感兴趣的朋友交流想法,提出建议。单片机设计:基于51单片机的99码表设计软件环境:Proteus8.0 + Keil4要求:1,开关按一下,数码管开始计时。2,按两下,数码管显示静止。3,按三下,数码管数值清零。C语言程序如下:#include<reg51.h>#define uint unsigned int#define uchar unsig...
Java 字符串操作和日期操作

Java 字符串操作和日期操作

一、Java字符串操作创建字符串String s2 = new String("Hello World");String s1 = "Hello World";1.字符串连接多个字符串链接时,每个字符串之间用+相连,+就是字符串链接,连接之后生成一个新的字符串。2.获取字符串长度 a.lenght() 根据索引从0开始,截取字符串长度 a.substring(1,3) ; 从1号位开始截取到3号位。3.获取指定字符串的索引位置 indexOf()方法;la...
Python中三目运算符的正确用法及短路逻辑

Python中三目运算符的正确用法及短路逻辑

今天在看别人代码时看到这样一种写法, 感觉是个挺容易踩到的坑, 搞清楚后写出来备忘.短路逻辑Python中进行逻辑运算的时候, 默认采用的是一种叫做短路逻辑的运算规则. 名字是很形象的, 下面直接看代码print True and 1# 1print True or 1# Trueprint False and 1# Falseprint False or 1# 1可以看到, 虽然1会被当做布尔值计算, 但整个表达式的计算结果却不一定是布尔值, 而是根据表...
<< 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 >>