一、题目描述⭐️二、代码(C语言)⭐️#includeintmain(){intA,//用户输入的不超过6的正整数Acount=0;//满足条件的整数个数,初始化为0scanf("%d",&A);//输入A//生成并输出满足条件的三位数for(inti=A;i
sqlite数据库
SickeyLee
Android项目总结数据库sqliteandroid
一、什么是sqlite数据库SQLite,是一款轻型的数据库,它的设计目标是嵌入式的,而且已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。1、简单,无
C语言 %zu
程序员琛琛
c语言
%d输出int型,%zu输出size_t型。size_t在库中定义为unsignedint。一个是整型,一个是无符号整型。补充:如果%zu不能使用,可以用%u取代。但%zu不能输出负数
芯片中,ping pang mode(乒乓模式)、one shot mode、影子寄存器等介绍
诗丶远方的田筠
pingpangmode乒乓模式oneshotmode影子寄存器
乒乓模式(Ping-PongMode)在芯片或者嵌入式系统中,"乒乓模式"(Ping-PongMode)是一种常见的设计模式,尤其在数据传输、内存管理、通信等领域应用广泛。这个模式的名字来自于“乒乓球”在两个点之间来回弹跳的形象,反映了数据或任务在两个缓冲区之间切换的特性。乒乓模式(Ping-PongMode)是什么?乒乓模式的核心思想是通过两个缓冲区(或内存区域)来交替使用,以提高系统的效率和响
DeepSeek R1 与 OpenAI O1:机器学习模型的巅峰对决
学无止尽5
机器学习人工智能
我的个人主页我的专栏:人工智能领域、java-数据结构、Javase、C语言,希望能帮助到大家!!!点赞收藏❤一、引言在机器学习的广袤天地中,大型语言模型(LLM)无疑是最为璀璨的明珠。它们凭借卓越的语言理解与生成能力,正以前所未有的方式重塑着我们与信息交互的模式。DeepSeekR1和OpenAIO1作为其中的佼佼者,代表了当前技术的前沿水准,在架构设计、训练方法、性能表现以及应用场景等诸多层面
C语言结构体,枚举,联合,位断等自定义类型详解
myloveasuka
C语言c语言数据结构开发语言
目录结构体1.结构体声明2.结构体成员的访问3.结构体自引用4.结构体变量定义,初始化,传参5.结构体内存对齐位段1.什么是位段?2.位段的内存分配枚举1.枚举类型的定义2.枚举的使用3.枚举的优点联合(共同体)1.联合类型的定义2.联合的特点3.面试题:判断当前计算机的大小端存储4.联合大小的计算代码仓库结构体1.结构体声明1.1概念1.结构体是一些值的集合,这些值称为成员变量。2.结构体的每个
一种MCU设备框架设计与实现
jiuri_1215
MCU开发单片机嵌入式硬件设备框架
引言在嵌入式系统开发中,一个良好的设备驱动框架可以大大提高代码的可维护性和可移植性。本文将介绍一个轻量级的MCU设备框架实现,该框架采用面向对象的思想,通过抽象设备接口,实现了设备管理的统一化和标准化。框架设计1.核心思想统一设备操作接口支持动态设备注册/注销链表管理多个设备面向对象的设计理念2.关键数据结构首先在头文件device_framework.h中定义核心数据结构:structdevic
【RK3588嵌入式图形编程】-SDL2-鼠标输入处理
视觉与物联智能
嵌入式Linux与边缘智能RK3588SDL2嵌入式图形嵌入式Linux物联网嵌入式硬件
鼠标输入处理文章目录鼠标输入处理1、概述2、鼠标移动事件3、鼠标点击事件4、鼠标点击位置5、鼠标双击6、鼠标进入和离开事件7、总结在本文中,将介绍如何在SDL2中检测和处理鼠标输入事件,包括鼠标移动、按钮点击以及窗口进入/退出。1、概述在本文中,我们将详细介绍如何检测和响应两种主要的鼠标输入形式——用户移动光标以及用户点击鼠标按钮。当检测到这些形式的输入时,一个SDL_Event会被推送到事件队列
【数据结构】排序算法---基数排序(动图演示)
Crossoads
C语言之数据结构初阶排序算法数据结构算法开发语言c语言
文章目录1.定义2.算法步骤2.1MSD基数排序2.2LSD基数排序3.LSD基数排序动图演示4.性质5.算法分析6.代码实现C语言PythonJavaC++Go结语⚠本节要介绍的不是计数排序1.定义基数排序(英语:Radixsort)是一种非比较型的排序算法,最早用于解决卡片排序的问题。基数排序将待排序的元素拆分为k个关键字,逐一对各个关键字排序后完成对所有元素的排序。如果是从第1关键字到第k关
康冠科技嵌入式面试题及参考答案
大模型大数据攻城狮
嵌入式嵌软单片机面试嵌入式硬件RTOS面试移植驱动开发
LCD驱动你自己做了哪些内容?在LCD驱动开发中,首先是硬件层面的理解。需要仔细研究LCD的数据手册,明确其引脚定义,包括电源引脚、数据引脚、控制引脚等。比如,对于常见的RGB接口LCD,要清楚哪几个引脚是用于传输红、绿、蓝三种颜色的数据,以及像VSYNC(垂直同步信号)、HSYNC(水平同步信号)这些控制显示同步的引脚功能。在软件层面,初始化工作是关键。要设置合适的寄存器来配置LCD的工作模式。
STM32之SG90舵机控制
如愿小李
stm32嵌入式硬件单片机
目录前言:一、硬件准备与接线1.1硬件清单1.2接线二、SG90舵机简介1.1外观1.2基本参数1.3引脚说明1.4控制原理1.5特点1.6常见问题三、单片机简介四、程序设计4.1定时器配置4.2角度控制函数4.3主函数调用五、总结前言:STM32F103C8T6是一款性价比极高的ARMCortex-M3内核微控制器,广泛应用于嵌入式开发。SG90舵机则是小型舵机的代表,常用于机器人、智能家居等场
Lua 从基础入门到精通(非常详细)
gorgor在码农
Redislua开发语言
目录什么是Lua?Lua环境安装Lua基本语法注释数据类型nil(空)Booleannumber(数字)string(字符串)function(函数)userdatathreadtable(表)流程控制运算符循环详解string库Lua模块与包案例实战什么是Lua?Lua是一种轻量小巧的脚本语言,它用标准C语言编写并以源代码形式开放。这意味着什么呢?这意味着Lua虚拟机可以很方便的嵌入别的程序里,
C++学习指南
月眠老师
c++java算法
一、引言C++是一种功能强大的高级编程语言,它融合了面向过程编程和面向对象编程的特性。由于其效率高、可移植性强等优点,广泛应用于系统开发、游戏编程、嵌入式系统等诸多领域。对于想要深入学习C++的人来说,需要全面掌握其语法、编程范式、数据结构、算法以及相关的开发工具等多方面的知识。二、C++基础语法(一)基本数据类型整型(Integer)在C++中有多种整型类型,如int(通常为32位有符号整数)、
【C语言】强符号和弱符号
ypf_bendan
C/C++知识c语言
1、强符号、弱符号定义编译器在编译源程序时,无论你是变量名、函数名,在它眼里,都是一个符号而已,用来表征一个地址。编译器会将这些符号集中,存放到一个叫符号表的section中。那么对于两个.c文件中存在的同名的变量,编译器该怎么选择呢?这个时候,就需要引入强符号和弱符号的概念了。强符号:函数名、初始化的全局变量名;弱符号:未初始化的全局变量名。两种符号的不同组合可能有不同的效果:强符号+强符号:编
C语言分支和循环语句
止水编程 water_proof
c语言开发语言
C语言中的语句分为三种结构:1.顺序结构2.选择结构:if、switch、case等等3.循环结构:while、for、dowhile等等本章主要讲:分支语句:if、switch循环语句:while、for、dowhile、goto语句一.什么是语句?C语句可分为以下五类:1.表达式语句2.函数调用语句3.控制语句4.复合语句5.空语句本章后面介绍的是控制语句C语言中有九种控制语句,可分为以下三类
C语言:强符号和弱符号
Dola_Pan
C语言c语言linux算法
我们在编写代码的过程中经常会遇到一种叫做符号重复定义(MultipleDefinition)的错误,这是因为在多个源文件中定义了名字相同的全局变量,并且都将它们初始化了。例如,在a.c中定义了全局变量global:intglobal=10;在b.c中又对global进行了定义:intglobal=20;那么在链接时就会出现下面的错误:b.o:multipledefinitionof`global'
学习STM32的理由
zzxyd_qiao
stm32物联网
为什么要写这篇文章呢?这是一篇关于嵌入式入门的文章,因为我在进入嵌入式这个领域之前,也是遇到过非常多非常多的困难,所以呢,希望写下这篇文章,让大家看看少走弯路。首先,我打算先列举一下大家问得最多的几个问题,然后我们一起由问题切入进行一些讨论。问题1:我是学单片机好还是直接学STM32好???问题2:STM32如何才能快速入门?问题3:为什么是STM32呢?为什么不是ARM9,ARM11呢?下面我将
Redis之父学生时代发现的ping漏洞的源码分析
Redis的作者SalvatoreSanfilippo(网名antirez)在意大利西西里岛长大,虽然从小就接触计算机,也有一些编程经验,但在大学期间却选择了建筑学院,可能当时并没有打算走职业程序员的道路吧。然而antirez应该就属于老天爷赏饭的那类人,据说仅仅因为错把显卡买成了网卡,商家又不肯退货,他就放下游戏,拿起了C语言的教材。不久之后,antirez发现了一个ping的漏洞,非root用
STM32 是什么?同类产品有哪些
天机️灵韵
硬件设备物联网stm32单片机嵌入式硬件
STM32是什么?STM32是由意法半导体(STMicroelectronics)推出的基于ARMCortex-M内核的32位微控制器(MCU)系列。它专为高性能、低功耗的嵌入式应用设计,广泛应用于以下领域:工业控制(PLC、电机驱动)消费电子(智能家居、穿戴设备)物联网(传感器、通信模块)汽车电子(车载控制、CAN总线)医疗设备(便携式监测仪)。STM32提供丰富的产品线(如STM32F、STM
3 > 数据结构与算法 栈与队列
irisart
数据结构与算法(C语言考研期末复习版)c语言数据结构
概览本节总结了栈和队列的基本概念和用法,另外附上栈与队列的基本操作代码(C语言版)。本节适合有C语言基础的初学者、期末复习、考研等方面的用途。栈只允许在一端插入和删除操作的线性表。代码如下特点:先进后出模式(LIFO),只能在栈顶操作。什么是卡特兰数:有n个元素进栈(顺序可以不同),出栈元素不同的排列个数为1n+1C2nn\frac{1}{n+1}C^n_{2n}n+11C2nn。共享栈:两个栈共
【19. C++ 日期与时间的使用与深入解析】
涛ing
C++基础c++java算法c语言开发语言linux后端
本章目录:前言C++中的日期与时间重要类型与结构体常见日期和时间函数获取当前日期与时间示例:获取当前本地时间和UTC时间使用`tm`结构格式化时间示例:从`tm`结构中提取时间格式化输出日期与时间示例:自定义格式化日期输出总结前言在C++中,虽然没有内建的日期类型,但我们可以通过头文件使用一些与日期和时间相关的函数和结构。这些工具不仅继承自C语言,而且提供了处理时间和日期的强大能力。理解如何操作时
C++开发IDE用VisualStudio好还是QtCreator好?
1号程序媛
Qt开发从零到精通C++开发大全idevisualstudioC++
在熟练使用了VisualStudio和QtCreator之后,我依然认为QtCreator作为C++项目开发IDE的便捷性真的相当杰出。当然了,VisualStudio和QtCreator本身就不是一个量级,VS越做越大,庞大的插件库也使得他能够支持从嵌入式到手机端,从web到脚本,甚至游戏,仿真等等各个领域的开发任务。所以做得大,必然导致很多细节功能没法做得好。相反,Qt的IDE工具QtCrea
C语言——结构体
格格Code
C语言c语言开发语言
前言:大家好,本篇主要介绍了C语言结构体部分的内容格格Code的C语言有关C语言的知识点都在这里,大家可以看看对自己有没有帮助一、结构体类型的声明1.1结构体的基础知识概念:结构是一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量。结构体是用户自定义的一种数据类型,可以将不同类型的数据组合在一起,形成一个逻辑上的整体。数组是一组相同类型元素的集合类型:char,int,short
桌面上有多个球在同时运动,怎么实现球之间不交叉,即碰撞?
换个号韩国红果果
html小球碰撞
稍微想了一下,然后解决了很多bug,最后终于把它实现了。其实原理很简单。在每改变一个小球的x y坐标后,遍历整个在dom树中的其他小球,看一下它们与当前小球的距离是否小于球半径的两倍?若小于说明下一次绘制该小球(设为a)前要把他的方向变为原来相反方向(与a要碰撞的小球设为b),即假如当前小球的距离小于球半径的两倍的话,马上改变当前小球方向。那么下一次绘制也是先绘制b,再绘制a,由于a的方向已经改变
《高性能HTML5》读后整理的Web性能优化内容
白糖_
html5
读后感
先说说《高性能HTML5》这本书的读后感吧,个人觉得这本书前两章跟书的标题完全搭不上关系,或者说只能算是讲解了“高性能”这三个字,HTML5完全不见踪影。个人觉得作者应该首先把HTML5的大菜拿出来讲一讲,再去分析性能优化的内容,这样才会有吸引力。因为只是在线试读,没有机会看后面的内容,所以不胡乱评价了。
[JShop]Spring MVC的RequestContextHolder使用误区
dinguangx
jeeshop商城系统jshop电商系统
在spring mvc中,为了随时都能取到当前请求的request对象,可以通过RequestContextHolder的静态方法getRequestAttributes()获取Request相关的变量,如request, response等。 在jshop中,对RequestContextHolder的
算法之时间复杂度
周凡杨
java算法时间复杂度效率
在
计算机科学 中,
算法 的时间复杂度是一个
函数 ,它定量描述了该算法的运行时间。这是一个关于代表算法输入值的
字符串 的长度的函数。时间复杂度常用
大O符号 表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是
渐近 的,它考察当输入值大小趋近无穷时的情况。
这样用大写O()来体现算法时间复杂度的记法,
Java事务处理
g21121
java
一、什么是Java事务 通常的观念认为,事务仅与数据库相关。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效。一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状
Linux awk命令详解
510888780
linux
一. AWK 说明
awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。
awk的处理文本和数据的方式:它逐行扫描文件,从第一行到
android permission
布衣凌宇
Permission
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" ></uses-permission>允许读写访问"properties"表在checkin数据库中,改值可以修改上传
<uses-permission android:na
Oracle和谷歌Java Android官司将推迟
aijuans
javaoracle
北京时间 10 月 7 日,据国外媒体报道,Oracle 和谷歌之间一场等待已久的官司可能会推迟至 10 月 17 日以后进行,这场官司的内容是 Android 操作系统所谓的 Java 专利权之争。本案法官 William Alsup 称根据专利权专家 Florian Mueller 的预测,谷歌 Oracle 案很可能会被推迟。 该案中的第二波辩护被安排在 10 月 17 日出庭,从目前看来
linux shell 常用命令
antlove
linuxshellcommand
grep [options] [regex] [files]
/var/root # grep -n "o" *
hello.c:1:/* This C source can be compiled with:
Java解析XML配置数据库连接(DOM技术连接 SAX技术连接)
百合不是茶
sax技术Java解析xml文档dom技术XML配置数据库连接
XML配置数据库文件的连接其实是个很简单的问题,为什么到现在才写出来主要是昨天在网上看了别人写的,然后一直陷入其中,最后发现不能自拔 所以今天决定自己完成 ,,,,现将代码与思路贴出来供大家一起学习
XML配置数据库的连接主要技术点的博客;
JDBC编程 : JDBC连接数据库
DOM解析XML: DOM解析XML文件
SA
underscore.js 学习(二)
bijian1013
JavaScriptunderscore
Array Functions 所有数组函数对参数对象一样适用。1.first _.first(array, [n]) 别名: head, take 返回array的第一个元素,设置了参数n,就
plSql介绍
bijian1013
oracle数据库plsql
/*
* PL/SQL 程序设计学习笔记
* 学习plSql介绍.pdf
* 时间:2010-10-05
*/
--创建DEPT表
create table DEPT
(
DEPTNO NUMBER(10),
DNAME NVARCHAR2(255),
LOC NVARCHAR2(255)
)
delete dept;
select
【Nginx一】Nginx安装与总体介绍
bit1129
nginx
启动、停止、重新加载Nginx
nginx 启动Nginx服务器,不需要任何参数u
nginx -s stop 快速(强制)关系Nginx服务器
nginx -s quit 优雅的关闭Nginx服务器
nginx -s reload 重新加载Nginx服务器的配置文件
nginx -s reopen 重新打开Nginx日志文件
spring mvc开发中浏览器兼容的奇怪问题
bitray
jqueryAjaxspringMVC浏览器上传文件
最近个人开发一个小的OA项目,属于复习阶段.使用的技术主要是spring mvc作为前端框架,mybatis作为数据库持久化技术.前台使用jquery和一些jquery的插件.
在开发到中间阶段时候发现自己好像忽略了一个小问题,整个项目一直在firefox下测试,没有在IE下测试,不确定是否会出现兼容问题.由于jquer
Lua的io库函数列表
ronin47
lua io
1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述
io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr
2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄
多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回nil
java-26-左旋转字符串
bylijinnan
java
public class LeftRotateString {
/**
* Q 26 左旋转字符串
* 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
* 如把字符串abcdef左旋转2位得到字符串cdefab。
* 请实现字符串左旋转的函数。要求时间对长度为n的字符串操作的复杂度为O(n),辅助内存为O(1)。
*/
pu
《vi中的替换艺术》-linux命令五分钟系列之十一
cfyme
linux命令
vi方面的内容不知道分类到哪里好,就放到《Linux命令五分钟系列》里吧!
今天编程,关于栈的一个小例子,其间我需要把”S.”替换为”S->”(替换不包括双引号)。
其实这个不难,不过我觉得应该总结一下vi里的替换技术了,以备以后查阅。
1
所有替换方案都要在冒号“:”状态下书写。
2
如果想将abc替换为xyz,那么就这样
:s/abc/xyz/
不过要特别
[轨道与计算]新的并行计算架构
comsci
并行计算
我在进行流程引擎循环反馈试验的过程中,发现一个有趣的事情。。。如果我们在流程图的每个节点中嵌入一个双向循环代码段,而整个流程中又充满着很多并行路由,每个并行路由中又包含着一些并行节点,那么当整个流程图开始循环反馈过程的时候,这个流程图的运行过程是否变成一个并行计算的架构呢?
重复执行某段代码
dai_lm
android
用handler就可以了
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
public void run() {
update();
handler.postDelayed(this, 5000);
}
};
开始计时
h
Java实现堆栈(list实现)
datageek
数据结构——堆栈
public interface IStack<T> {
//元素出栈,并返回出栈元素
public T pop();
//元素入栈
public void push(T element);
//获取栈顶元素
public T peek();
//判断栈是否为空
public boolean isEmpty
四大备份MySql数据库方法及可能遇到的问题
dcj3sjt126com
DBbackup
一:通过备份王等软件进行备份前台进不去?
用备份王等软件进行备份是大多老站长的选择,这种方法方便快捷,只要上传备份软件到空间一步步操作就可以,但是许多刚接触备份王软件的客用户来说还原后会出现一个问题:因为新老空间数据库用户名和密码不统一,网站文件打包过来后因没有修改连接文件,还原数据库是好了,可是前台会提示数据库连接错误,网站从而出现打不开的情况。
解决方法:学会修改网站配置文件,大多是由co
github做webhooks:[1]钩子触发是否成功测试
dcj3sjt126com
githubgitwebhook
转自: http://jingyan.baidu.com/article/5d6edee228c88899ebdeec47.html
github和svn一样有钩子的功能,而且更加强大。例如我做的是最常见的push操作触发的钩子操作,则每次更新之后的钩子操作记录都会在github的控制板可以看到!
工具/原料
github
方法/步骤
">的作用" target="_blank">JSP中的作用
蕃薯耀
JSP中<base href="<%=basePath%>">的作用
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
linux下SAMBA服务安装与配置
hanqunfeng
linux
局域网使用的文件共享服务。
一.安装包:
rpm -qa | grep samba
samba-3.6.9-151.el6.x86_64
samba-common-3.6.9-151.el6.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-client-3.6.9-151.el6.x86_64
samba-winbind-clients
guava cache
IXHONG
cache
缓存,在我们日常开发中是必不可少的一种解决性能问题的方法。简单的说,cache 就是为了提升系统性能而开辟的一块内存空间。
缓存的主要作用是暂时在内存中保存业务系统的数据处理结果,并且等待下次访问使用。在日常开发的很多场合,由于受限于硬盘IO的性能或者我们自身业务系统的数据处理和获取可能非常费时,当我们发现我们的系统这个数据请求量很大的时候,频繁的IO和频繁的逻辑处理会导致硬盘和CPU资源的
Query的开始--全局变量,noconflict和兼容各种js的初始化方法
kvhur
JavaScriptjquerycss
这个是整个jQuery代码的开始,里面包含了对不同环境的js进行的处理,例如普通环境,Nodejs,和requiredJs的处理方法。 还有jQuery生成$, jQuery全局变量的代码和noConflict代码详解 完整资源:
http://www.gbtags.com/gb/share/5640.htm jQuery 源码:
(
美国人的福利和中国人的储蓄
nannan408
今天看了篇文章,震动很大,说的是美国的福利。
美国医院的无偿入院真的是个好措施。小小的改善,对于社会是大大的信心。小孩,税费等,政府不收反补,真的体现了人文主义。
美国这么高的社会保障会不会使人变懒?答案是否定的。正因为政府解决了后顾之忧,人们才得以倾尽精力去做一些有创造力,更造福社会的事情,这竟成了美国社会思想、人
N阶行列式计算(JAVA)
qiuwanchi
N阶行列式计算
package gaodai;
import java.util.List;
/**
* N阶行列式计算
* @author 邱万迟
*
*/
public class DeterminantCalculation {
public DeterminantCalculation(List<List<Double>> determina
C语言算法之打渔晒网问题
qiufeihu
c算法
如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,编程实现当输入2011年1月1日以后任意一天,输出该渔夫是在打渔还是在晒网。
代码如下:
#include <stdio.h>
int leap(int a) /*自定义函数leap()用来指定输入的年份是否为闰年*/
{
if((a%4 == 0 && a%100 != 0
XML中DOCTYPE字段的解析
wyzuomumu
xml
DTD声明始终以!DOCTYPE开头,空一格后跟着文档根元素的名称,如果是内部DTD,则再空一格出现[],在中括号中是文档类型定义的内容. 而对于外部DTD,则又分为私有DTD与公共DTD,私有DTD使用SYSTEM表示,接着是外部DTD的URL. 而公共DTD则使用PUBLIC,接着是DTD公共名称,接着是DTD的URL.
私有DTD
<!DOCTYPErootSYST