iso 14229-1.3

时间: 2023-06-05 07:47:36 浏览: 57
ISO 14229-1.3是国际标准化组织制定的一项规范,也称为UDS(Unified Diagnostic Services,统一诊断服务)。它是一种用于车辆诊断和维修的通信协议标准,旨在简化车辆故障诊断和修理。 UDS协议支持诊断功能和控制单元(ECU)的编程,使车辆诊断工程师和技术人员可以在车辆系统的各个方面进行维护。 UDS协议是基于CAN总线通信的,它允许车辆的ECU通过CAN总线与外部诊断设备进行通信。使用UDS标准可以简化车辆制造商和维修服务提供商之间的协作,并提高诊断和维护的效率和准确性。此外,ISO 14229-1.3还规定了UDS协议的安全要求,包括有关保护ECU免受恶意攻击和保护车辆数据的规定。总之,ISO 14229-1.3是一项重要的标准,它为车辆制造商和维修服务提供商提供了一个标准化和可靠的通信协议。
相关问题

freenas-9.2.1.3-release-x64.iso

freenas-9.2.1.3-release-x64.iso 是一个免费的网络附加存储(Network Attached Storage)操作系统。它是一个基于FreeBSD的开源操作系统,旨在为用户提供一个强大且易于使用的存储解决方案。 该操作系统的主要目标是提供一个高性能、可靠且安全的储存平台,以满足个人和企业的存储需求。它支持各种存储协议,如CIFS(Common Internet File System)、SMB(Server Message Block)、NFS(Network File System)、iSCSI(Internet Small Computer System Interface)等。 freenas-9.2.1.3-release-x64.iso还提供了一系列功能来管理存储。它有一个直观的Web界面,允许用户配置和管理存储设备,创建共享文件夹,设置用户权限等。此外,它还支持数据备份和恢复,可以轻松地设置自动备份计划和远程备份。 该操作系统还具有额外的功能,如数据加密、文件系统快照和数据压缩。数据加密可以帮助用户保护存储的机密数据,文件系统快照可以方便地保存系统的不同版本状态,而数据压缩可以最大限度地减少存储空间的使用。 总之,freenas-9.2.1.3-release-x64.iso 是一个功能强大且灵活的存储解决方案,适用于个人用户和小型企业。它的开源性质和免费的特点,使得对于没有大量财力的用户,能够以低成本获得高质量的存储系统。

sipp 盲转脚本编写

SIPp可以使用XML脚本来描述SIP会话。盲转是一种SIP功能,允许用户在不知道目标URI的情况下将呼叫转移到其他URI。下面是一个基本的SIPp盲转脚本示例: ```xml <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE scenario SYSTEM "sipp.dtd"> <!-- 定义变量 --> <scenario name="Blind Transfer" description="Blind Transfer" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <send retrans="500" trcount="1"> <![CDATA[ INVITE sip:user1@192.168.1.1 SIP/2.0 Via: SIP/2.0/UDP 192.168.1.2:5060;branch=z9hG4bK12345 From: sip:user2@192.168.1.2;tag=12345 To: sip:user1@192.168.1.1 Call-ID: 12345@192.168.1.2 CSeq: 1 INVITE Contact: sip:user2@192.168.1.2:5060 Content-Type: application/sdp Content-Length: 0 ]]> </send> <!-- 等待100 Trying响应 --> <recv response="100" optional="true"> </recv> <!-- 等待200 OK响应 --> <recv response="200"> <!-- 提取From标头 --> <check_from uri="sip:user2@192.168.1.2" /> <!-- 提取To标头 --> <check_to uri="sip:user1@192.168.1.1" /> <!-- 提取Contact标头 --> <check_contact /> <!-- 提取SDP信息 --> <check_body content="audio" /> </recv> <!-- 发送盲转请求 --> <send retrans="500" trcount="1"> <![CDATA[ REFER sip:user3@192.168.1.3 SIP/2.0 Via: SIP/2.0/UDP 192.168.1.2:5060;branch=z9hG4bK12346 From: sip:user2@192.168.1.2;tag=12345 To: sip:user1@192.168.1.1 Call-ID: 12345@192.168.1.2 CSeq: 2 REFER Contact: sip:user2@192.168.1.2:5060 Refer-To: <sip:user3@192.168.1.3> ]]> </send> <!-- 等待202 Accepted响应 --> <recv response="202"> </recv> <!-- 等待BYE请求 --> <recv request="BYE"> <!-- 提取From标头 --> <check_from uri="sip:user2@192.168.1.2" /> <!-- 提取To标头 --> <check_to uri="sip:user3@192.168.1.3" /> </recv> <!-- 发送200 OK响应 --> <send> <![CDATA[ SIP/2.0 200 OK Via: SIP/2.0/UDP 192.168.1.2:5060;branch=z9hG4bK12347 From: sip:user2@192.168.1.2;tag=12345 To: sip:user3@192.168.1.3 Call-ID: 12345@192.168.1.2 CSeq: 3 BYE Contact: sip:user2@192.168.1.2:5060 Content-Length: 0 ]]> </send> </scenario> ``` 如上所示,该脚本首先发送一个INVITE请求,等待100 Trying响应和200 OK响应。然后,发送一个REFER请求,将呼叫转移给URI为`<sip:user3@192.168.1.3>`的用户。最后,等待BYE请求和200 OK响应。在发送和接收消息时,可以使用`<check_*>`元素从SIP消息中提取信息,以便进行后续处理。

相关推荐

pdf
IEEE Standard for System and Software Verification and Validation IEEE Std 1012-2012 Front Cover -14 Title Page -12 Notice to users -9 Laws and regulations -9 Copyrights -9 Updating of IEEE documents -9 Errata -9 Patents -8 Participants -7 Introduction -5 Contents -3 Important notice 1 1. Overview 1 1.1 Scope 1 1.2 Purpose 2 1.3 Field of application 3 1.4 V&V objectives 4 1.5 Organization of the standard 4 1.6 Audience 6 1.7 Conformance 7 1.8 Disclaimer 7 2. Normative references 7 3. Definitions, abbreviations, and acronyms 7 3.1 Definitions 7 3.2 Abbreviations and acronyms 11 4. Relationships between V&V and life cycle processes 12 5. Integrity levels 15 6. V&V processes overview 17 6.1 General 17 6.2 V&V testing 18 7. Common V&V activities 19 7.1 Activity: V&V Management 19 7.2 Activity: Acquisition Support V&V 20 7.3 Activity: Supply Planning V&V 21 7.4 Activity: Project Planning V&V 21 7.5 Activity: Configuration Management V&V 21 8. System V&V activities 33 8.1 Activity: Stakeholder Requirements Definition V&V 33 The purpose of the Stakeholder Requirements Definition Process is to define the requirements for a system that can provide the services needed by users and other stakeholders in a defined environment. It identifies stakeholders, or stakeholder classes... 33 The V&V effort shall perform, as specified in Table 2b for the selected integrity level, the following Stakeholder Requirements Definition V&V tasks described in Table 1b: 33 8.2 Activity: Requirements Analysis V&V 33 8.3 Activity: Architectural Design V&V 34 8.4 Activity: Implementation V&V 35 8.5 Activity: Integration V&V 35 8.6 Activity: Transition V&V 36 8.7 Activity: Operation V&V 36 8.8 Activity: Maintenance V&V 37 8.9 Activity: Disposal V&V 38 9. Software V&V activities 68 9.1 Activity: Software Concept V&V 68 9.2 Activity: Software Requirements V&V 68 9.3 Activity: Software Design V&V 69 9.4 Activity: Software Construction V&V 69 9.5 Activity: Software Integration Test V&V 70 9.6 Activity: Software Qualification Test V&V 70 9.7 Activity: Software Acceptance Test V&V 71 9.8 Activity: Software Installation and Checkout V&V 71 9.9 Activity: Software Operation V&V 72 9.10 Activity: Software Maintenance V&V 72 9.11 Activity: Software Disposal V&V 73 10. Hardware V&V activities 110 10.1 Activity: Hardware Concept V&V 110 10.2 Activity: Hardware Requirements V&V 110 10.3 Activity: Hardware Design V&V 111 10.4 Activity: Hardware Fabrication V&V 111 10.5 Activity: Hardware Integration Test V&V 112 10.6 Activity: Hardware Qualification Test V&V 112 10.7 Activity: Hardware Acceptance Test V&V 113 10.8 Activity: Hardware Transition V&V 113 10.9 Activity: Hardware Operation V&V 114 10.10 Activity: Hardware Maintenance V&V 114 10.11 Activity: Hardware Disposal V&V 115 11. V&V reporting, administrative, and documentation requirements 147 11.1 V&V reporting requirements 147 11.2 V&V administrative requirements 150 11.3 V&V documentation requirements 150 12. V&V plan outline 151 12.1 Overview 151 12.2 VVP Section 1: Purpose 152 12.3 VVP Section 2: Referenced documents 152 12.4 VVP Section 3: Definitions 152 12.5 VVP Section 4: V&V overview 152 12.5.1 VVP Section 4.1: Organization 152 12.5.2 VVP Section 4.2: Master schedule 153 12.5.3 VVP Section 4.3: Integrity level scheme 153 12.5.4 VVP Section 4.4: Resources summary 153 12.5.5 VVP Section 4.5: Responsibilities 153 12.5.6 VVP Section 4.6: Tools, techniques, and methods 153 12.6 VVP Section 5: V&V processes 154 12.6.1 VVP Section 5.1: Common V&V Processes, Activities, and Tasks 154 12.6.2 VVP Section 5.2: System V&V Processes, Activities, and Tasks 154 12.6.3 VVP Section 5.3: Software V&V Processes, Activities, and Tasks 154 12.6.4 VVP Section 5.4: Hardware V&V Processes, Activities, and Tasks 154 12.7 VVP Section 6: V&V reporting requirements 154 12.8 VVP Section 7: V&V administrative requirements 154 12.8.1 General 154 12.8.2 VVP Section 7.1: Anomaly resolution and reporting 154 12.8.3 VVP Section 7.2: Task iteration policy 154 12.8.4 VVP Section 7.3: Deviation policy 155 12.8.5 VVP Section 7.4: Control procedures 155 12.8.6 VVP Section 7.5: Standards, practices, and conventions 155 12.9 VVP Section 8: V&V test documentation requirements 155 Annex A (informative) Mapping of IEEE 1012 V&V activities and tasks 156 A.1 Mapping of ISO/IEC 15288 V&V requirements to IEEE 1012 V&V activities and tasks 156 A.2 Mapping of IEEE 1012 V&V activities to ISO/IEC 15288 system life cycle processes and activities 158 A.3 Mapping of ISO/IEC 12207 V&V requirements to IEEE 1012 V&V activities and tasks 159 A.4 Mapping of IEEE 1012 V&V activities to IEEE 12207 software life cycle processes and activities 161 Annex B (informative) A risk-based, integrity-level scheme 163 Annex C (informative) Definition of independent V&V (IV&V) 165 C.1 Technical independence 165 C.2 Managerial independence 165 C.3 Financial independence 165 C.4 Forms of independence 165 C.4.1 Classical IV&V 166 C.4.2 Modified IV&V 166 C.4.3 Integrated IV&V 166 C.4.4 Internal IV&V 166 C.4.5 Embedded V&V 167 Annex D (informative) V&V of reuse software 168 D.1 Purpose 168 D.2 V&V of software developed in a reuse process 169 D.2.1 V&V of assets in development 169 D.2.2 V&V of reused assets 169 D.3 V&V of software developed and reused outside of a reuse process 169 Annex E (informative) V&V measures 175 E.1 Introduction 175 E.2 Measures for evaluating anomaly density 175 E.3 Measures for evaluating V&V effectiveness 176 E.4 Measures for evaluating V&V efficiency 176 Annex F (informative) Example of V&V relationships to other project responsibilities 178 Annex G (informative) Optional V&V tasks 179 Annex H (informative) Environmental factors considerations 185 H.1 Introduction 185 H.2 In the agreement processes 185 H.3 In the organizational project-enabling processes 185 H.4 In the project processes 186 H.5 In the technical processes 186 Annex I (informative) V&V of system, software, and hardware integration 188 I.1 Introduction 188 I.2 Examples of system failures caused by integration issues 188 I.2.1 Year 2000 System Integration Issue 189 I.2.2 System architecture integration issues 189 I.3 System, software, and hardware interaction issues 190 Annex J (informative) Hazard, security, and risk analyses 193 J.1 Hazard analysis 193 Annex K (informative) Example of assigning and changing the system integrity level of “supporting system functions” 198 Annex L (informative) Mapping of ISO/IEC/IEEE 15288 and IEEE 12207 process outcomes to V&V tasks 200 Annex M (informative) Bibliography 209
application/x-zip
ASN.1是一种用于描述结构化客体的结构和内容的语言,基于编码规则BER(Basic Encoding Rules)是ASN.1标准定义的一种传送文法。每个MIB变量格式是SMI规定的,用ASN.1描述如下: OBJECTNAME BOJECT-TYPE DESCRIPTION:(description) SYNTAX: (syntax) ACCESS: (access) STATUS: (status) ::={(Parent)number} OBJECTNAME是被管对象的名字,ASN.1要求所有对象的名字在MIB中必须是唯一的;BOJECT-TYPE 是每一个节点对象所必需的关键字;SYNTAX是被管对象类型的关键字,随后跟着的是一个类型(syntax);ACCESS是被管对象的访问方式关键字,在 SNMP 第二版中为MAX-ACCESS 关键字,(access)是被管对象的访问方式,可为如下列举值之一: read-only、read-write、no-accessible, SNMP 第2 版中又增加了read-create;STATUS是被管对象关键字,(status)是被管对象的状态,如必备的、可选的或废弃的;DESCRIPTION是 对被管对象的功能、特征等进行描述的关键字,(description)是被管对象的文本描述,在:::={(Parent)number }中,Parent表示位于MIB树中的父节点,number表示是第几个子节点。 MIB 树 每个MIB对象都用对象标识符(OID)来唯一的标识,这是用定义在ASN.1语法中的树型结构来组织的可用信息,其中每个可用信息是一个带标号的节点,每个节点用数字和字符两种方式显示,其中对象标识符OID是由句点隔开的一组整数,也就是从根节点通向它的路径,它命名节点并指示它在ASN.1树中的准确位置。一个带标号节点可以拥有包含其它带标号节点为它的子树,如果没有子树它就是叶子节点,它包含一个值并被称为对象。图3是带有ASN.1编号的MIB树实例:可以看出MIB-Ⅱ的OID是:1.3.6.1.2.1或者iso.org.dod.internet.mgmt.mib2。在SNMP中,实现应用到的MIB对象都是MIB-Ⅱ的子树节点。
docx
XXX航空移动化应用平台项目 1 投标书 13 2 规格偏离表 13 3 资格证明文件 13 3.1法人营业执照(三证合一) 13 3.2法定代表人授权书 13 3.3 投标人的资信证明 13 3.4 招标文件要求的其他资格证明文件 15 3.4.1投标单位资质证书及项目人员资格证书 15 3.4.1.1 CMMI等级登记证书 15 3.4.1.2 ISO9001质量管理体系认证证书 15 3.4.1.3 软件企业认证证书 15 3.4.1.4 计算机软件著作权登记书-SDK 15 3.4.1.5计算机软件著作权登记书-MAS 15 .4.1.6计算机软件著作权登记书-MMS 16 3.4.1.7计算机软件著作权登记书-EMM 16 3.4.1.8计算机软件著作权登记书-MDM 16 3.4.1.9 项目人员证书 16 3.4.2投标单位近3年内获国家及地方政府荣誉证书 18 3.4.2.1 2015年度中国移动互联网行业领军企业奖 18 3.4.2.2 2014-2015年度云计算应用优秀实践单位奖 18 3.4.2.3 2014年度中国最具影响力品牌奖 19 3.4.2.4 2013年度最佳技术服务提供商 19 3.4.2.5 2013年度中国移动应用平台最具影响力奖 19 3.4.2.6 2014移动生产力十大优秀案例奖 19 3.4.3投标单位综合情况审查表 19 3.4.4拟派项目经理资格审查表 20 3.4.5承担本项目主要技术人员和售后服务人员表 20 3.4.6最近两年主要开发实施同类型企业相同或类似系统的开发案例 21 3.4.6.1案例合同首尾页 21 3.4.6.2 系统开发主界面截图 22 4 项目解决方案 26 4.1 项目解决方案内容 26 4.1.1 系统总体目标、设计架构、系统详细设计方案 27 4.1.1.1 设计原则 27 1. 统一设计原则 27 2. 稳定性原则 27 3. 统一设计原则 27 4. 稳定性原则 27 5. 先进性原则 27 6. 高可靠/高安全性原则 27 7. 开放性原则 28 8. 适用性原则 28 9. 可扩展性原则 28 10. 操作/维护的易用性原则 28 11. 高可靠/高安全性原则 28 4.1.1.2 架构设计 29 4.1.1.2.1. 系统架构设计 29 4.1.1.2.2. 业务系统架构设计 31 4.1.1.2.3. 业务处理架构 32 4.1.1.2.4. 网络拓扑图 33 4.1.1.3 技术路线 35 4.1.1.3.1 统一的移动构建平台 35 4.1.1.3.2 Hybrid移动开发引擎 35 4.1.1.3.3 面向服务的SOA接口集成 35 4.1.1.3.4 高并发处理机制 36 4.1.1.3.5 高效的内存数据库 36 4.1.1.3.6 兼容多种集成模式 36 4.1.1.3.7 开放式的框架设计 36 4.1.1.3.8 数据库选型 36 4.1.1.4 应用工具 37 4.1.1.4.1. 开发工具 37 4.1.1.4.2. 分析设计工具 38 4.1.1.4.3. 项目管理辅助工具 38 4.1.1.4.4. 测试工具 39 4.1.1.4.5. 统计工具 40 4.1.1.4.6. 开发语言 42 4.1.1.4.7. 辅助软件工具及其效果 44 4.1.1.5 移动平台建设方案 45 4.1.1.5.1. 移动业务整合平台(APPCAN MAS) 45 4.1.1.5.2. 移动业务开发平台(APPCAN SDK) 53 1. 音频对象API 55 2. 电话对象API 55 3. 照相机对象API 55 4. 剪贴板对象API 55 5. 日期控件API 55 6. 联系人对象API 55 7. 数据库对象API 55 8. 设备信息对象API 55 9. 下载对象API 55 10. 邮件对象API 55 11. 文件管理对象API 55 12. 图片浏览对象API 56 13. Jabber对象API 56 14. 位置服务对象API 56 15. 日志log输出对象API 56 16. 彩信对象API 56 17. 支付宝API 56 18. 二维码扫描对象API 56 19. 传感器对象API 56 20. 短信对象API 57 21. Socket对象API 57 22. 上传对象API 57 23. 视频对象API 57 24. widget对象API 57 25. 平台对象API 57 26. 多窗口机制API 57 27. 跨域访问对象API 57 28. zip压缩解压缩API 57 29. 百度广告推广接口 57 30. 百度地图接口 57 31. 百度统计接口 58 32. 数据统计分析自定义事件接口 58 33. 微博分享接口 58 34. 自定义编辑框接口 58 35. 游戏引擎接口 58 (1) 插件扩展 58 AppCan IDE 启动画面 62 AppCan IDE 代码编辑界面 63 AppCan IDE模拟器与调试器 63 AppCan IDE 本地打包界面 64 AppCan UI框架控件 65 AppCan Player示意图 66 AppCan模拟器 67 Mac Mini服务器 68 AppCan SDK套装管理后台-项目列表 69 AppCan SDK套装管理后台-项目管理 69 AppCan SDK套装管理后台-引擎升级 70 4.1.1.5.3. 移动业务管理平台(APPCAN EMM) 71 4.1.1.6 前端应用建设方案 78 4.1.1.6.1. 机票预订 78 4.1.1.6.2. 订单管理 82 4.1.1.6.3. 航班动态 86 4.1.1.6.4. XXX商店 90 4.1.1.6.5. 会员注册\登录 93 4.1.1.6.6. 常用乘机人管理 95 4.1.1.6.7. 机票验真 97 4.1.1.6.8. 促销专区 98 4.1.1.6.9. 更多服务 99 4.1.1.6.10. 主页 103 1、 功能性:主页面集成APP中所有功能模块,用户可应用功能模块快速使用需求功能。 103 2、 经济性与宣传性:通过轮播图、广告、促销信息、资讯等展示形式满足XXX航空的宣传需求与广告需求,达到增加收益的目的。 103 3、 美观性:页面设计根据XXX航空整体UI设计思想为依据进行设计,使用户一目了然具备XXX航空的代表性和与其他航空公司的差异化,在此基础上进行深入设计,如根据季节设计清爽的界面、根据时下热播电影设计主题界面等。 103 4.1.1.7 后台管理系统建设方案 104 4.1.1.6.1. 移动平台业务管理系统 105 (1) 应用趋势统计 110 4.1.1.6.2. 移动平台会员管理中心 123 4.1.1.8 非功能性方案 126 4.1.1.7.1. 跨平台解决方案 126 AppCan应用引擎构成图 126 4.1.1.7.2. 消息推送解决方案 127 4.1.1.7.3. 消息/数据可靠性和即时性解决方案 129 4.1.1.7.4. 大数据推送解决方案 129 4.1.1.7.5. 用户操作行为分析解决方案 130 HTML5中国统计分析案例图 132 4.1.1.7.6. 业务系统整合解决方案 132 4.1.1.7.7. 大并发时保证后台业务系统可用性解决方案 136 4.1.1.7.8. 性能解决方案 137 4.1.1.7.9. 接口解决方案 139 4.1.1.7.10. 易用性解决方案 139 4.1.2 软件及硬件配置方案 141 1. 硬件配置 141 2. 软件配置 142 (1) 软件安装配置 142 (2) 软件版本要求 142 4.1.3 项目开发组组成及各成员职责分配方案 144 4.1.3.1. 项目工作方法 144 4.1.3.2. 项目组织结构 145 1. 项目实施领导小组 145 2. 项目经理 146 3. SQA组 146 4. 产品设计组 146 5. UI设计组 146 6. 手机端开发组 147 7. 后台系统开发组 147 8. 测试验收组 147 9. 角色和责任 147 4.1.3.3. 关键人员简历 150 4.1.4 项目管理方案 150 4.1.4.1. 项目例会 150 4.1.4.1.1. 项目协调会 150 4.1.4.1.2. 项目启动会 150 4.1.4.1.3. 现场安装前的工程协调会 150 4.1.4.1.4. 试运行前的工程协调会 151 4.1.4.2. 工作文档评审 151 4.1.4.2.1. 设计评审时机 151 4.1.4.2.2. 设计评审的形式 152 4.1.4.2.3. 设计评审的准备 153 4.1.4.2.4. 设计评审的实施 153 4.1.4.2.5. 对发现问题的处理和跟踪措施 153 4.1.4.2.6. 质量记录的控制 154 4.1.4.3. 项目风险控制 154 4.1.4.3.1. 管理风险 154 4.1.4.3.2. 技术风险 155 4.1.4.3.3. 人员风险 155 4.1.4.4. 项目质量管理 156 5.1.4.4.1. 质量管理过程 156 5.1.4.4.2. 质量管理组织 156 SQA组需参与的关键评审工作任务表 157 4.1.4.5. 变更管理 158 4.1.4.5.1. 需求分级管理 158 4.1.4.5.2. 全生命周期变更管理 159 4.1.4.5.3. 需求变更管理原则 160 4.1.4.5.4. 需求变更应对方法 161 4.1.5 项目实施方案 163 4.1.5.1. 实施计划日程表 165 4.1.5.2. 实施计划表 166 4.1.5.3. 阶段工作及成果 168 4.1.5.4. 项目进度保障措施与办法 170 1. 定义项目成功的标准 170 2. 识别项目的驱动、约束和自由程度 171 3. 定义产品发布标准 171 4. 沟通承诺 171 5. 计划中,在质量控制活动后应该有修改工作 171 6. 为过程改进安排时间 172 7. 管理项目的风险 172 8. 根据工作计划而不是日历来作估计 172 9. 不要为人员安排超过他们80%的时间 172 10. 记录你的估算和你是如何达到估算的 173 11. 记录估算并且使用估算工具 173 12. 遵守学习曲线 173 13. 考虑意外缓冲 173 14. 录实际情况与估算情况 173 15. 只有当任务100%完成时,才认为该任务完成 174 16. 公开、公正地跟踪项目状态 174 4.1.6 质量控制、质量保证方案 175 4.1.6.1. 项目质量管理的关键 175 4.1.6.2. 本项目质量保证措施 175 4.1.6.3. IT项目质量管理的目标和质量控制 177 4.1.7 系统安全性方案 179 4.1.7.1. 安全性设计原则 179 (9) 系统对内网服务及对外网服务功能要求独立发布,并提供安全、可靠的权限控制。 179 4.1.7.2. 服务器安全 179 4.1.7.3. 移动应用安全 179 4.1.7.4. 终端认证 180 4.1.7.5. 终端授权 181 4.1.7.6. 终端证书 181 4.1.7.7. 本地安全存储 181 4.1.7.8. 数据传输安全 181 4.1.7.9. 数据库安全机制 182 4.1.7.10. 容错机制 182 4.1.7.11. 数据同步 183 4.1.7.12. 服务器集群和负载均衡 183 4.1.7.13. 防火墙 184 4.1.8 项目交付定义 185 4.1.9 项目验收方案 186 4.1.9.1. 验收方案 186 1. 验收目的 186 2. 验收对象 186 3. 项目验收的前提条件 186 (1) 所有建设项目按照合同要求全部建成,并满足使用要求; 186 4. 验收方法 187 5. 验收步骤 187 6. 验收程序 188 7. 验收依据 189 8. 验收内容和标准 190 9. 验收结论 191 10. 项目交接 192 4.1.9.2. 测试方案 193 4.1.9.2.1. 测试内容设计 193 4.1.9.2.2. 测试阶段规划 198 V模型图 198 4.1.9.2.3. 测试工作流程 201 4.1.9.2.4. 测试结果评价与测试工具 208 (1) 项目汇报文件 210 (2) 测试方案 210 4.1.9.2.5. 测试人员名单 211 4.1.10 本期项目完成交付后,技术服务计划、维护、承诺及费用 212 4.1.10.1. 概述 212 4.1.10.2. 服务内容 213 1. 咨询服务 213 2. 应用系统的故障响应 213 3. 应用系统辅助操作 213 4. 应用系统的维护服务 213 5. 交流和培训 213 6. 应用系统业务调整 214 7. 应用系统软件升级 214 4.1.10.3. 支持机构 214 1. 咨询服务组 214 2. 咨询服务专家组 214 4.1.10.4. 支持方式 215 1. 现场维护 215 2. 热线电话咨询 215 3. 咨询服务网站 215 (1) 远程登录诊断维护 215 4.1.11 人员培训计划、技术转移方案 216 4.1.11.1. 培训方案 216 4.1.11.1.1. 培训对象和内容 216 4.1.11.1.2. 培训目的 217 4.1.11.1.3. 培训原则与培训质量保证体系 218 (1) 培训的师资力量 219 4.1.11.1.4. 培训方式 220 4.1.11.1.5. 培训大纲 220 4.1.11.1.6. 培训组织及技术力量安排 222 4.1.11.1.7. 培训组织方案 223 4.1.11.2. 技术转移方案 225 4.1.12 预期系统性能状况,后续升级扩展方案和计划建议 227 4.1.12.1. 移动端响应标准 227 4.1.12.2. 系统响应标准 227 4.1.12.3. 优化办法 227 4.1.12.4. 系统批处理效率 228 4.1.12.5. 并发用户下的系统性能 228 4.1.13 其他资料 229 4.1.13.1. 典型案例 229
pdf
emWin 图形库 图形用户界面 版本 5.12 手册修订版 0 emWin V5.12 用户参考手册 © 1997 - 2011 SEGGER Microcontroller GmbH & Co. KG 9 1 emWin 简介....................................................................................................................23 1.1 本文档的目的 ............................................................................................24 1.2 假定 .......................................................................................................24 1.3 如何使用本手册 .........................................................................................24 1.4 语法句子的印刷规范 ....................................................................................24 1.5 要求 .......................................................................................................25 1.5.1 目标系统 (硬件).......................................................................................25 1.5.2 开发环境 (编译器)....................................................................................25 1.6 特性 .......................................................................................................26 1.7 示例和演示 ...............................................................................................27 1.8 初学者套装 ...............................................................................................27 1.9 屏幕和坐标 ...............................................................................................27 1.10 如何将显示器连接到微控制器 .........................................................................28 1.11 数据类型..................................................................................................29 2 入门指南.........................................................................................................................31 2.1 推荐目录结构 ............................................................................................32 2.1.1 子目录 ....................................................................................................32 2.1.2 包含目录..................................................................................................32 2.2 添加 emWin 到目标程序...............................................................................32 2.3 创建库 ....................................................................................................33 2.3.1 改编库批处理文件以适应不同系统 ...................................................................33 2.4 要包含在项目中的 C 文件..............................................................................35 2.5 emWin 的配置 ..........................................................................................35 2.6 初始化 emWin ..........................................................................................36 2.7 有目标硬件时使用 emWin ............................................................................37 2.8 “Hello world”示例程序 .............................................................................37 3 模拟................................................................................................................................39 3.1 使用模拟..................................................................................................40 3.1.1 通过 emWin 试用版使用模拟 .........................................................................40 3.1.1.1 目录结构..................................................................................................40 3.1.1.2 Visual C++ 工作空间 .................................................................................40 3.1.1.3 编译演示程序 ............................................................................................41 3.1.1.4 编译示例..................................................................................................41 3.1.2 通过 emWin 源代码使用模拟 .........................................................................42 3.1.2.1 目录结构..................................................................................................42 3.1.2.2 Visual C++ 工作空间 .................................................................................42 3.1.2.3 编译应用程序 ............................................................................................43 3.1.3 模拟的高级功能 .........................................................................................43 3.1.3.1 暂停和恢复 ...............................................................................................43 3.1.3.2 查看系统信息 ............................................................................................43 3.1.3.3 复制到剪贴板 ............................................................................................43 3.2 设备模拟..................................................................................................44 3.2.1 生成的框架视图 .........................................................................................45 3.2.2 自定义位图视图 .........................................................................................45 3.2.3 窗口视图..................................................................................................46 3.3 设备模拟 API ............................................................................................47 3.4 硬键模拟..................................................................................................52 3.4.1 硬键模拟 API ............................................................................................5310 emWin V5.12 用户参考手册 © 1997 - 2011 SEGGER Microcontroller GmbH & Co. KG 3.5 集成 emWin 模拟到现有模拟中...................................................................... 56 3.5.1 目录结构 ................................................................................................. 56 3.5.2 使用模拟库 .............................................................................................. 56 3.5.2.1 修改 WinMain .......................................................................................... 56 3.5.2.2 应用程序示例............................................................................................ 57 3.5.3 集成到 embOS 模拟中 ................................................................................ 58 3.5.3.1 WinMain................................................................................................. 58 3.5.3.2 目标程序 (main) ....................................................................................... 59 3.5.4 GUI 模拟 API ........................................................................................... 60 4 查看器 ............................................................................................................................63 4.1 使用查看器 .............................................................................................. 64 4.1.1 使用模拟和查看器 ...................................................................................... 64 4.1.2 使用带虚拟页面的查看器 .............................................................................. 65 4.1.3 总在顶部显示............................................................................................ 65 4.1.4 打开显示输出的更多窗口 .............................................................................. 65 4.1.5 缩放....................................................................................................... 66 4.1.6 将输出复制到剪贴板 ................................................................................... 66 4.1.7 使用带多种显示的查看器 .............................................................................. 67 4.1.8 使用带多种显示的查看器 .............................................................................. 67 5 显示文本.........................................................................................................................69 5.1 基本例程 ................................................................................................. 70 5.2 文本 API ................................................................................................. 71 5.3 显示文本的例程 ......................................................................................... 72 5.4 选择文本绘制模式 ...................................................................................... 79 5.5 选择文本对齐模式 ...................................................................................... 81 5.6 设置当前文本位置 ...................................................................................... 83 5.7 返回当前文本位置 ...................................................................................... 84 5.8 清除窗口或部分窗口的例程 ........................................................................... 84 6 显示数值.........................................................................................................................85 6.1 评估 API ................................................................................................. 86 6.2 显示十进制数值 ......................................................................................... 87 6.3 显示浮点数值............................................................................................ 91 6.4 显示二进制数值 ......................................................................................... 94 6.5 显示十六进制数值 ...................................................................................... 95 6.6 emWin 版 ............................................................................................... 96 7 2-D 图形库......................................................................................................................97 7.1 图形 API ................................................................................................. 98 7.2 绘制模式 ................................................................................................100 7.3 查询当前客户区矩形 ..................................................................................102 7.4 画笔大小 ................................................................................................102 7.5 基本绘制例程...........................................................................................103 7.6 Alpha 混合 .............................................................................................110 7.7 绘制位图 ................................................................................................113 7.8 绘制流位图 .............................................................................................116 7.9 绘制线条 ................................................................................................122 7.10 绘制多边形 .............................................................................................126 7.11 绘制圆 ...................................................................................................131 7.12 绘制椭圆 ................................................................................................133 7.13 绘制弧线 ................................................................................................135 7.14 绘制线图 ................................................................................................137 7.15 绘制饼图 ................................................................................................138 7.16 保存和恢复 GUI 环境 .................................................................................139 7.17 裁剪......................................................................................................140 8 显示位图文件 ...............................................................................................................141emWin V5.12 用户参考手册 © 1997 - 2011 SEGGER Microcontroller GmbH & Co. KG 11 8.1 BMP 文件支持 ......................................................................................... 142 8.1.1 支持的格式 ............................................................................................. 142 8.1.2 BMP 文件 API ......................................................................................... 142 8.2 JPEG 文件支持 ........................................................................................ 148 8.2.1 支持的 JPEG 压缩方法 ............................................................................... 148 8.2.2 将 JPEG 文件转换为 C 源 ............................................................................ 148 8.2.3 显示 JPEG 文件........................................................................................ 148 8.2.4 存储器使用 ............................................................................................. 149 8.2.5 渐进式 JPEG 文件..................................................................................... 149 8.2.6 JPEG 文件 API ........................................................................................ 149 8.3 GIF 文件支持 .......................................................................................... 154 8.3.1 将 GIF 文件转换为 C 源.............................................................................. 154 8.3.2 显示 GIF 文件 ......................................................................................... 154 8.3.3 存储器使用 ............................................................................................. 154 8.3.4 GIF 文件 API .......................................................................................... 155 8.4 PNG 文件支持 ......................................................................................... 163 8.4.1 将 PNG 文件转换为 C 源 ............................................................................. 163 8.4.2 显示 PNG 文件 ........................................................................................ 163 8.4.3 存储器使用 ............................................................................................. 163 8.4.4 PNG 文件 API ......................................................................................... 163 8.5 使用 ...Ex() 函数获取数据 .......................................................................... 167 9 字体..............................................................................................................................169 9.1 简介 ..................................................................................................... 170 9.2 字体类型................................................................................................ 170 9.3 字体格式................................................................................................ 172 9.3.1 C 文件格式 ............................................................................................. 172 9.3.2 系统独立字体 (SIF) 格式 ............................................................................ 172 9.3.3 外部位图字体 (XBF) 格式 ........................................................................... 173 9.3.4 TrueType 字体 (TTF) 格式 ......................................................................... 174 9.4 将 TTF 文件转换为 C 源.............................................................................. 174 9.5 声明自定义字体 ....................................................................................... 175 9.6 选择字体................................................................................................ 175 9.7 字体 API................................................................................................ 176 9.8 C 文件相关的字体函数 ............................................................................... 177 9.9 “SIF”文件相关的字体函数 ........................................................................ 178 9.10 “TTF”文件相关的字体函数 ........................................................................ 179 9.11 “XBF”文件相关的字体函数........................................................................ 183 9.12 常见字体相关的函数 .................................................................................. 184 9.13 字符集 .................................................................................................. 188 9.13.1 ASCII................................................................................................... 188 9.13.2 ISO 8859-1 西方拉丁字符集....................................................................... 189 9.13.3 Unicode................................................................................................ 190 9.14 字体转换器 ............................................................................................. 191 9.14.1 添加字体................................................................................................ 191 9.15 标准字体................................................................................................ 192 9.15.1 字体标识符命名约定 .................................................................................. 192 9.15.2 字体文件命名约定..................................................................................... 193 9.15.3 字体的计量、 ROM 大小和字符集 .................................................................. 193 9.15.4 比例字体................................................................................................ 194 9.15.4.1 概述 ..................................................................................................... 194 9.15.4.2 计量、 ROM 大小和使用的文件..................................................................... 194 9.15.4.3 字符 ..................................................................................................... 196 9.15.5 比例字体,带边框..................................................................................... 202 9.15.5.1 概述 ..................................................................................................... 202 9.15.5.2 计量、 ROM 大小和使用的文件..................................................................... 202 9.15.5.3 字符 ..................................................................................................... 202 9.15.6 等宽字体................................................................................................ 203 9.15.6.1 概述 ..................................................................................................... 203 9.15.6.2 计量、 ROM 大小和使用的文件..................................................................... 204 9.15.6.3 字符 ..................................................................................................... 20512 emWin V5.12 用户参考手册 © 1997 - 2011 SEGGER Microcontroller GmbH & Co. KG 9.15.7 数字字体 (比例).....................................................................................209 9.15.7.1 概述......................................................................................................209 9.15.7.2 计量、 ROM 大小和使用的文件 .....................................................................209 9.15.7.3 字符......................................................................................................209 9.15.8 数字字体 (等宽).....................................................................................210 9.15.8.1 概述......................................................................................................210 9.15.8.2 计量、 ROM 大小和使用的文件 .....................................................................211 9.15.8.3 字符......................................................................................................211 10 位图转换器.................................................................................................................213 10.1 功能......................................................................................................214 10.2 加载位图 ................................................................................................214 10.2.1 支持的输入文件格式 ..................................................................................214 10.2.2 从文件加载 .............................................................................................214 10.2.3 使用剪贴板 .............................................................................................215 10.3 从位图生成 C 文件.....................................................................................215 10.3.1 支持的位图格式 ........................................................................................215 10.3.2 调色板信息 .............................................................................................215 10.3.3 透明性 ...................................................................................................216 10.3.4 Alpha 混合 .............................................................................................216 10.3.5 选择最佳格式...........................................................................................217 10.3.6 保存文件 ................................................................................................218 10.4 色彩转换 ................................................................................................219 10.5 生成 C 流文件 ..........................................................................................220 10.6 压缩位图 ................................................................................................220 10.7 使用定制调色板 ........................................................................................221 10.7.1 保存调色板文件 ........................................................................................221 10.7.2 C 文件格式..............................................................................................221 10.7.3 固定调色板模式的调色板文件 .......................................................................221 10.7.4 转换位图 ................................................................................................222 10.8 命令行用法 .............................................................................................222 10.8.1 命令的格式 .............................................................................................222 10.8.2 有效的命令行选项 .....................................................................................222 10.9 转换位图示例...........................................................................................224 11 颜色............................................................................................................................227 11.1 预定义的颜色...........................................................................................228 11.2 颜色条测试例程 ........................................................................................228 11.3 固定调色板模式 ........................................................................................229 11.4 固定调色板模式的详细说明 ..........................................................................230 11.5 应用程序定义的色彩转换 .............................................................................240 11.6 定制调色板模式 ........................................................................................241 11.7 颜色 API ................................................................................................241 11.8 基本颜色函数...........................................................................................242 11.9 索引和色彩转换 ........................................................................................244 12 存储设备.....................................................................................................................247 12.1 使用存储设备:图示 ..................................................................................248 12.2 支持的色彩深度 (bpp)................................................................................248 12.3 存储设备和窗口管理器................................................................................249 12.4 存储设备和多层 ........................................................................................249 12.5 内存要求 ................................................................................................249 12.6 性能......................................................................................................250 12.7 基本函数 ................................................................................................251 12.8 使用存储设备的准备操作 ... .........................................................................251 12.9 多层 / 多显示配置 .....................................................................................251 12.10 配置选项 ................................................................................................251 12.10.1 GUI_USE_MEMDEV_1BPP_FOR_SCREEN....................................................251 12.11 存储设备 API...........................................................................................251 12.12 基本函数 ................................................................................................253emWin V5.12 用户参考手册 © 1997 - 2011 SEGGER Microcontroller GmbH & Co. KG 13 12.13 分段存储设备 .......................................................................................... 266 12.14 自动设备对象 .......................................................................................... 267 12.15 测量设备对象 .......................................................................................... 269 12.16 动画函数................................................................................................ 271 12.17 动画函数 (需要使用窗口管理器)................................................................. 272 13 执行模型:单任务 / 多任务.........................................................................................277 13.1 支持的执行模型 ....................................................................................... 278 13.2 单任务系统 (超循环)............................................................................... 278 13.2.1 描述 ..................................................................................................... 278 13.2.2 超循环示例 (无 emWin).......................................................................... 278 13.2.3 优势 ..................................................................................................... 278 13.2.4 缺点 ..................................................................................................... 278 13.2.5 使用 emWin ........................................................................................... 278 13.2.6 超循环示例 (有 emWin).......................................................................... 279 13.3 多任务系统:一个任务调用 emWin ............................................................... 279 13.3.1 描述 ..................................................................................................... 279 13.3.2 优势 ..................................................................................................... 279 13.3.3 缺点 ..................................................................................................... 279 13.3.4 使用 emWin ........................................................................................... 279 13.4 多任务系统:多个任务调用 emWin ............................................................... 280 13.4.1 描述 ..................................................................................................... 280 13.4.2 优势 ..................................................................................................... 280 13.4.3 缺点 ..................................................................................................... 280 13.4.4 使用 emWin ........................................................................................... 280 13.4.5 建议 ..................................................................................................... 280 13.4.6 示例 ..................................................................................................... 280 13.5 支持多任务的 GUI 配置函数 ........................................................................ 281 13.6 支持多任务的 GUI 配置宏 ........................................................................... 283 13.7 内核接口 API .......................................................................................... 284 13.7.1 示例 ..................................................................................................... 287 14 窗口管理器 (WM) .......................................................................................................289 14.1 术语说明................................................................................................ 290 14.2 回调机制,无效化和渲染 ............................................................................ 291 14.2.1 不使用回调渲染 ....................................................................................... 291 14.2.2 使用回调渲染 .......................................................................................... 292 14.2.3 背景窗口重绘和回调 .................................................................................. 292 14.2.4 无效化 .................................................................................................. 293 14.2.5 渲染透明窗口 .......................................................................................... 293 14.2.6 自动使用存储设备..................................................................................... 293 14.2.7 自动使用多帧缓冲..................................................................................... 294 14.2.8 自动使用显示驱动缓存 ............................................................................... 294 14.3 消息 ..................................................................................................... 295 14.3.1 消息结构................................................................................................ 295 14.3.2 消息清单................................................................................................ 295 14.3.3 系统定义的消息 ....................................................................................... 296 14.3.4 指针输入设备 (PID) 消息............................................................................ 300 14.3.5 系统定义的通知代码 .................................................................................. 303 14.3.6 应用定义的消息 ....................................................................................... 303 14.4 配置选项................................................................................................ 304 14.5 WM API ................................................................................................ 305 14.5.1 使用 WM API 函数.................................................................................... 307 14.6 基本函数................................................................................................ 307 14.7 存储设备支持 (可选)............................................................................... 336 14.8 定时器相关函数 ....................................................................................... 336 14.9 小工具相关函数 ....................................................................................... 339 14.10 示例 ..................................................................................................... 342 15 窗口对象 (小工具)...................................................................................................34514 emWin V5.12 用户参考手册 © 1997 - 2011 SEGGER Microcontroller GmbH & Co. KG 15.1 基础知识 ................................................................................................346 15.1.1 可用小工具 .............................................................................................346 15.1.2 了解重绘机制...........................................................................................347 15.1.3 如何使用小工具 ........................................................................................347 15.2 配置选项 ................................................................................................349 15.3 通用小工具 API ........................................................................................350 15.3.1 用于小工具的 WM 例程...............................................................................350 15.3.2 常用例程 ................................................................................................350 15.3.3 用户绘制小工具 ........................................................................................354 15.4 BUTTON:按钮小工具 ...............................................................................356 15.4.1 配置选项 ................................................................................................356 15.4.2 通知代码 ................................................................................................357 15.4.3 键盘反应 ................................................................................................357 15.4.4 BUTTON API ..........................................................................................357 15.4.5 示例......................................................................................................370 15.5 CHECKBOX:复选框小工具.........................................................................371 15.5.1 配置选项 ................................................................................................372 15.5.2 通知代码 ................................................................................................372 15.5.3 键盘反应 ................................................................................................372 15.5.4 CHECKBOX API ......................................................................................372 15.5.5 示例......................................................................................................386 15.6 DROPDOWN:下拉列表小工具 ....................................................................387 15.6.1 配置选项 ................................................................................................388 15.6.2 通知代码 ................................................................................................388 15.6.3 键盘反应 ................................................................................................388 15.6.4 DROPDOWN API.....................................................................................388 15.6.5 示例......................................................................................................400 15.7 EDIT:“编辑”小工具 ...............................................................................402 15.7.1 配置选项 ................................................................................................402 15.7.2 通知代码 ................................................................................................402 15.7.3 键盘反应 ................................................................................................403 15.7.4 EDIT API...............................................................................................403 15.7.5 示例......................................................................................................418 15.8 FRAMEWIN:框架窗口小工具......................................................................419 15.8.1 框架窗口的结构 ........................................................................................420 15.8.2 配置选项 ................................................................................................421 15.8.3 键盘反应 ................................................................................................421 15.8.4 FRAMEWIN API ......................................................................................421 15.8.5 示例......................................................................................................442 15.9 GRAPH:图形小工具 .................................................................................443 15.9.1 图形小工具的结构 .....................................................................................443 15.9.2 创建和删除图形小工具................................................................................444 15.9.3 绘制过程 ................................................................................................444 15.9.4 支持的曲线类型 ........................................................................................444 15.9.4.1 GRAPH_DATA_XY ...................................................................................445 15.9.4.2 GRAPH_DATA_YT ...................................................................................445 15.9.5 配置选项 ................................................................................................445 15.9.5.1 图形小工具 .............................................................................................445 15.9.5.2 刻度对象 ................................................................................................445 15.9.6 键盘反应 ................................................................................................445 15.9.7 图形 API ................................................................................................445 15.9.7.1 常用例程 ................................................................................................447 15.9.7.2 GRAPH_DATA_YT 相关的例程.....................................................................455 15.9.7.3 GRAPH_DATA_XY 相关的例程.....................................................................459 15.9.7.4 刻度相关的例程 ........................................................................................463 15.9.8 示例......................................................................................................467 15.10 HEADER:标题小工具 ...............................................................................469 15.10.1 配置选项 ................................................................................................470 15.10.2 通知代码 ................................................................................................470 15.10.3 键盘反应 ................................................................................................470 15.10.4 HEADER API ..........................................................................................470emWin V5.12 用户参考手册 © 1997 - 2011 SEGGER Microcontroller GmbH & Co. KG 15 15.10.5 示例 ..................................................................................................... 482 15.11 ICONVIEW:图标视图小工具 ...................................................................... 483 15.11.1 配置选项................................................................................................ 483 15.11.2 通知代码................................................................................................ 484 15.11.3 键盘反应................................................................................................ 484 15.11.4 ICONVIEW API ...................................................................................... 484 15.11.5 示例 ..................................................................................................... 494 15.12 LISTBOX:列表框小工具 ........................................................................... 496 15.12.1 配置选项................................................................................................ 496 15.12.2 通知代码................................................................................................ 496 15.12.3 键盘反应................................................................................................ 496 15.12.4 LISTBOX API......................................................................................... 497 15.12.5 示例 ..................................................................................................... 513 15.13 LISTVIEW:Listview 小工具 ...................................................................... 514 15.13.1 配置选项................................................................................................ 515 15.13.2 通知代码................................................................................................ 515 15.13.3 键盘反应................................................................................................ 515 15.13.4 LISTVIEW API ....................................................................................... 516 15.13.5 示例 ..................................................................................................... 537 15.14 LISTWHEEL:Listwheel 小工具 .................................................................. 539 15.14.1 配置选项................................................................................................ 539 15.14.2 通知代码................................................................................................ 539 15.14.3 键盘反应................................................................................................ 539 15.14.4 LISTWHEEL API ..................................................................................... 540 15.15 MENU:菜单小工具 .................................................................................. 553 15.15.1 菜单消息................................................................................................ 554 15.15.2 数据结构................................................................................................ 555 15.15.3 配置选项................................................................................................ 555 15.15.4 键盘反应................................................................................................ 556 15.15.5 “菜单” API ........................................................................................... 556 15.15.6 示例 ..................................................................................................... 570 15.16 MESSAGEBOX:消息框小工具 .................................................................... 571 15.16.1 配置选项................................................................................................ 571 15.16.2 键盘反应................................................................................................ 571 15.16.3 MESSAGEBOX API.................................................................................. 571 15.17 MULTIEDIT:多行文本小工具 ..................................................................... 573 15.17.1 配置选项................................................................................................ 574 15.17.2 通知代码................................................................................................ 574 15.17.3 键盘反应................................................................................................ 574 15.17.4 MULTIEDIT API...................................................................................... 574 15.17.5 示例 ..................................................................................................... 584 15.18 MULTIPAGE:“多页”小工具 ..................................................................... 586 15.18.1 配置选项................................................................................................ 587 15.18.2 通知代码................................................................................................ 587 15.18.3 键盘反应................................................................................................ 587 15.18.4 MULTIPAGE API..................................................................................... 587 15.18.5 示例 ..................................................................................................... 598 15.19 PROGBAR:进度条小工具.......................................................................... 599 15.19.1 配置选项................................................................................................ 599 15.19.2 键盘反应................................................................................................ 599 15.19.3 PROGBAR API ....................................................................................... 599 15.19.4 示例 ..................................................................................................... 604 15.20 RADIO:单选按钮小工具 ........................................................................... 605 15.20.1 配置选项................................................................................................ 605 15.20.2 通知代码................................................................................................ 605 15.20.3 键盘反应................................................................................................ 606 15.20.4 RADIO API............................................................................................ 606 15.20.5 示例 ..................................................................................................... 615 15.21 SCROLLBAR:滚动条小工具....................................................................... 617 15.21.1 配置选项................................................................................................ 617 15.21.2 通知代码................................................................................................ 61716 emWin V5.12 用户参考手册 © 1997 - 2011 SEGGER Microcontroller GmbH & Co. KG 15.21.3 键盘反应 ................................................................................................617 15.21.4 SCROLLBAR API .....................................................................................618 15.21.5 示例......................................................................................................625 15.22 SLIDER:滑块小工具 ................................................................................626 15.22.1 配置选项 ................................................................................................626 15.22.2 通知代码 ................................................................................................626 15.22.3 键盘反应 ................................................................................................626 15.22.4 SLIDER API ...........................................................................................626 15.22.5 示例......................................................................................................632 15.23 文本文本小工具 ........................................................................................633 15.23.1 配置选项 ................................................................................................633 15.23.2 键盘反应 ................................................................................................633 15.23.3 文本 API ................................................................................................633 15.23.4 示例......................................................................................................639 15.24 TREEVIEW:树形视图小工具.......................................................................640 15.24.1 术语说明 ................................................................................................641 15.24.2 配置选项 ................................................................................................642 15.24.3 通知代码 ................................................................................................642 15.24.4 键盘反应 ................................................................................................642 15.24.5 TREEVIEW API .......................................................................................643 15.24.5.1 常用例程 ................................................................................................644 15.24.5.2 项目相关例程...........................................................................................657 15.24.6 示例......................................................................................................662 15.25 WINDOW:窗口小工具..............................................................................663 15.25.1 配置选项 ................................................................................................663 15.25.2 键盘反应 ................................................................................................663 15.25.3 WINDOW API.........................................................................................663 16 对话框 ........................................................................................................................665 16.1 对话框的基本原理 .....................................................................................666 16.2 创建对话框 .............................................................................................666 16.2.1 资源表 ...................................................................................................666 16.2.2 对话框过程函数 ........................................................................................667 16.2.2.1 初始化对话框...........................................................................................668 16.2.2.2 定义对话框行为 ........................................................................................669 16.3 对话框 API..............................................................................................670 16.4 对话框 ...................................................................................................670 17 GUIBuilder .................................................................................................................673 17.1 简介......................................................................................................674 17.2 入门指南 ................................................................................................675 17.3 创建对话框 .............................................................................................676 17.3.1 选择父小工具...........................................................................................676 17.3.2 在编辑器中调整大小和定位 ..........................................................................676 17.3.3 修改小工具属性 ........................................................................................676 17.3.4 向小工具添加其他函数................................................................................676 17.3.5 删除小工具属性 ........................................................................................677 17.3.6 删除小工具 .............................................................................................677 17.4 保存当前的对话框 .....................................................................................678 17.5 GUIBuilder 的输出 ...................................................................................679 17.6 修改 C 文件 .............................................................................................681 17.7 如何使用 C 文件 .......................................................................................681 18 换肤............................................................................................................................683 18.1 “皮肤”是什么? ......................................................................................684 18.2 从使用 API 函数到换肤 ...............................................................................684 18.3 可换肤的小工具 ........................................................................................685 18.4 使用皮肤 ................................................................................................685 18.4.1 运行时间配置...........................................................................................686 18.4.2 编译时间配置...........................................................................................686emWin V5.12 用户参考手册 © 1997 - 2011 SEGGER Microcontroller GmbH & Co. KG 17 18.5 简单更改 “Flex”皮肤外观 ......................................................................... 686 18.6 对 “Flex”皮肤外观所作的重大更改 .............................................................. 687 18.6.1 换肤回调机制 .......................................................................................... 687 18.6.2 更改默认皮肤的外观 .................................................................................. 687 18.6.3 命令列表................................................................................................ 688 18.7 常用的换肤 API........................................................................................ 690 18.8 BUTTON_SKIN_FLEX .............................................................................. 693 18.8.1 配置结构................................................................................................ 693 18.8.2 配置选项................................................................................................ 693 18.8.3 换肤 API................................................................................................ 694 18.8.4 命令列表................................................................................................ 695 18.9 CHECKBOX_SKIN_FLEX .......................................................................... 696 18.9.1 配置结构................................................................................................ 696 18.9.2 配置选项................................................................................................ 696 18.9.3 换肤 API................................................................................................ 697 18.9.4 命令列表................................................................................................ 698 18.10 DROPDOWN_SKIN_FLEX......................................................................... 700 18.10.1 配置结构................................................................................................ 700 18.10.2 配置选项................................................................................................ 701 18.10.3 换肤 API................................................................................................ 701 18.10.4 命令列表................................................................................................ 702 18.11 FRAMEWIN_SKIN_FLEX .......................................................................... 703 18.11.1 配置结构................................................................................................ 703 18.11.2 配置选项................................................................................................ 704 18.11.3 换肤 API................................................................................................ 704 18.11.4 命令列表................................................................................................ 705 18.12 HEADER_SKIN_FLEX .............................................................................. 708 18.12.1 配置结构................................................................................................ 708 18.12.2 配置选项................................................................................................ 708 18.12.3 换肤 API................................................................................................ 709 18.12.4 命令列表................................................................................................ 709 18.13 PROGBAR_SKIN_FLEX ............................................................................ 711 18.13.1 配置结构................................................................................................ 711 18.13.2 配置选项................................................................................................ 711 18.13.3 换肤 API................................................................................................ 712 18.13.4 命令列表................................................................................................ 712 18.14 RADIO_SKIN_FLEX ................................................................................ 715 18.14.1 配置结构................................................................................................ 715 18.14.2 配置选项................................................................................................ 716 18.14.3 换肤 API................................................................................................ 716 18.14.4 命令列表................................................................................................ 717 18.15 SCROLLBAR_SKIN_FLEX......................................................................... 719 18.15.1 配置结构................................................................................................ 719 18.15.2 配置选项................................................................................................ 720 18.15.3 换肤 API................................................................................................ 720 18.15.4 命令列表................................................................................................ 721 18.16 SLIDER_SKIN_FLEX ............................................................................... 724 18.16.1 配置结构................................................................................................ 724 18.16.2 配置选项................................................................................................ 725 18.16.3 换肤 API................................................................................................ 725 18.16.4 命令列表................................................................................................ 726 19 多缓冲 ........................................................................................................................729 19.1 工作原理................................................................................................ 730 19.1.1 双缓冲 .................................................................................................. 730 19.1.2 三缓冲 .................................................................................................. 730 19.2 要求 ..................................................................................................... 731 19.3 限制 ..................................................................................................... 731 19.4 配置 ..................................................................................................... 731 19.4.1 LCD_X_Config() .................................................................................... 731 19.4.2 LCD_X_DisplayDriver()........................................................................... 73218 emWin V5.12 用户参考手册 © 1997 - 2011 SEGGER Microcontroller GmbH & Co. KG 19.5 通过窗口管理器自动使用多个缓冲器 ...............................................................733 19.6 多缓冲 API..............................................................................................734 20 虚拟屏幕 / 虚拟页面 ...................................................................................................739 20.1 简介......................................................................................................740 20.2 要求......................................................................................................740 20.3 配置......................................................................................................741 20.4 示例.....................................................................................................741 20.4.1 基本示例 ................................................................................................741 20.4.2 使用窗口管理器的实时示例 ..........................................................................743 20.4.3 使用窗口管理器的对话框示例 .......................................................................744 20.5 虚拟屏幕 API...........................................................................................746 21 多层 / 多显示支持 .......................................................................................................747 21.1 简介......................................................................................................748 21.1.1 选择绘图操作所使用的层 .............................................................................748 21.1.2 选择窗口所使用的层 ..................................................................................748 21.1.2.1 把窗口从一层移到另一层 .............................................................................749 21.2 使用多层支持...........................................................................................751 21.2.1 透明......................................................................................................751 21.2.2 Alpha 混合 .............................................................................................752 21.2.3 硬件游标 ................................................................................................753 21.2.4 多层示例 ................................................................................................753 21.3 使用多显示支持 ........................................................................................753 21.3.1 启用多显示支持 ........................................................................................753 21.3.2 运行时间屏幕旋转 .....................................................................................754 21.3.3 多显示示例 .............................................................................................754 21.4 配置多层支持...........................................................................................754 21.5 配置多显示支持 ........................................................................................755 21.6 多层 API .......................................
application/pdf
老资源。 目录 1 声明和初始化1 1.1 我如何决定使用那种整数类型? . . . . . . . . . . . . . . . . . . . 1 1.2 64 位机上的64 位类型是什么样的? . . . . . . . . . . . . . . . . 1 1.3 怎样定义和声明全局变量和函数最好? . . . . . . . . . . . . . . . 2 1.4 extern 在函数声明中是什么意思? . . . . . . . . . . . . . . . . . 2 1.5 关键字auto 到底有什么用途? . . . . . . . . . . . . . . . . . . . 2 1.6 我似乎不能成功定义一个链表。我试过typedef struct f char *item; NODEPTR next; g *NODEPTR; 但是编译器报了错误信 息。难道在C语言中一个结构不能包含指向自己的指针吗? . . . . 3 1.7 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返 回指向字符的指针的函数的指针的数组? . . . . . . . . . . . . . . 3 1.8 函数只定义了一次, 调用了一次, 但编译器提示非法重定义了。. . 4 1.9 main() 的正确定义是什么? void main() 正确吗? . . . . . . . . . 4 1.10 对于没有初始化的变量的初始值可以作怎样的假定?如果一个全 局变量初始值为“零”, 它可否作为空指针或浮点零? . . . . . . . 4 1.11 代码int f() f char a[] = "Hello, world!";g 不能编译。. . . . . . . 5 1.12 这样的初始化有什么问题?char *p = malloc(10); 编译器提示“非 法初始式” 云云。. . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.13 以下的初始化有什么区别?char a[] = "string literal"; char *p = "string literal"; 当我向p[i] 赋值的时候, 我的程序崩溃了。. . . . 5 1.14 我总算弄清除函数指针的声明方法了, 但怎样才能初始化呢? . . 5 2 结构、联合和枚举7 2.1 声明struct x1 f . . . g; 和typedef struct f . . . g x2; 有什么不同? . 7 2.2 为什么struct x f . . . g; x thestruct; 不对? . . . . . . . . . . . . . 7 2.3 一个结构可以包含指向自己的指针吗? . . . . . . . . . . . . . . . 7 2.4 在C 语言中实现抽象数据类型什么方法最好? . . . . . . . . . . . 7 2.5 在C 中是否有模拟继承等面向对象程序设计特性的好方法? . . . 7 i 目录ii 2.6 我遇到这样声明结构的代码: struct name f int namelen; char namestr[1];g; 然后又使用一些内存分配技巧使namestr 数组用起 来好像有多个元素。这样合法和可移植吗? . . . . . . . . . . . . 8 2.7 是否有自动比较结构的方法? . . . . . . . . . . . . . . . . . . . . 8 2.8 如何向接受结构参数的函数传入常数值? . . . . . . . . . . . . . . 8 2.9 怎样从/向数据文件读/写结构? . . . . . . . . . . . . . . . . . . . 9 2.10 我的编译器在结构中留下了空洞, 这导致空间浪费而且无法与外 部数据文件进行”二进制” 读写。能否关掉填充, 或者控制结构域 的对齐方式? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.11 为什么sizeof 返回的值大于结构的期望值, 是不是尾部有填充? . . 9 2.12 如何确定域在结构中的字节偏移? . . . . . . . . . . . . . . . . . 9 2.13 怎样在运行时用名字访问结构中的域? . . . . . . . . . . . . . . . 10 2.14 程序运行正确, 但退出时却“core dump”了,怎么回事? . . . . . 10 2.15 可以初始化一个联合吗? . . . . . . . . . . . . . . . . . . . . . . . 10 2.16 枚举和一组预处理的#define 有什么不同? . . . . . . . . . . . . 10 2.17 有什么容易的显示枚举值符号的方法? . . . . . . . . . . . . . . . 11 3 表达式13 3.1 为什么这样的代码: a[i] = i++; 不能工作? . . . . . . . . . . . . 13 3.2 使用我的编译器,下面的代码int i=7; printf("%dnn", i++ * i++); 返回49?不管按什么顺序计算, 难道不该打印出56吗? . . . . . . 13 3.3 对于代码int i = 3; i = i++; 不同编译器给出不同的结果, 有的为 3, 有的为4, 哪个是正确的? . . . . . . . . . . . . . . . . . . . . . 14 3.4 这是个巧妙的表达式: a ˆ= b ˆ= a ˆ= b 它不需要临时变量就可 以交换a 和b 的值。. . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5 我可否用括号来强制执行我所需要的计算顺序? . . . . . . . . . . 14 3.6 可是&& 和|| 运算符呢?我看到过类似while((c = getchar()) != EOF && c != ’nn’) 的代码⋯⋯ . . . . . . . . . . . . . . . . . . 14 3.7 我怎样才能理解复杂表达式?“序列点” 是什么? . . . . . . . . . 15 3.8 那么, 对于a[i] = i++; 我们不知道a[] 的哪一个分量会被改写,但i 的确会增加1, 对吗? . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.9 ++i 和i++ 有什么区别? . . . . . . . . . . . . . . . . . . . . . . 15 3.10 如果我不使用表达式的值, 我应该用++i 或i++ 来自增一个变量 吗? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.11 为什么如下的代码int a = 100, b = 100; long int c = a * b; 不能 工作? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.12 我需要根据条件把一个复杂的表达式赋值给两个变量中的一 个。可以用下边这样的代码吗? ((condition) ? a : b) = complicated expression; . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 目录iii 4 指针17 4.1 我想声明一个指针并为它分配一些空间, 但却不行。这些代码有 什么问题?char *p; *p = malloc(10); . . . . . . . . . . . . . . . . 17 4.2 *p++ 自增p 还是p 所指向的变量? . . . . . . . . . . . . . . . . 17 4.3 我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行? . . . . . . . . . . . . . . 17 4.4 我有个函数,它应该接受并初始化一个指针void f(int *ip) f static int dummy = 5; ip = &dummy;g 但是当我如下调用时: int *ip; f(ip); 调用者的指针却没有任何变化。. . . . . . . . . . . . . . . 18 4.5 我能否用void** 指针作为参数, 使函数按引用接受一般指针? . . 18 4.6 我有一个函数extern int f(int *); 它接受指向int 型的指针。我怎 样用引用方式传入一个常数?下面这样的调用f(&5); 似乎不行。. 18 4.7 C 有“按引用传递” 吗? . . . . . . . . . . . . . . . . . . . . . . . 18 4.8 我看到了用指针调用函数的不同语法形式。到底怎么回事? . . . 19 4.9 我怎样把一个int 变量转换为char * 型?我试了类型转换, 但是不 行。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5 空(null) 指针21 5.1 臭名昭著的空指针到底是什么? . . . . . . . . . . . . . . . . . . . 21 5.2 怎样在程序里获得一个空指针? . . . . . . . . . . . . . . . . . . . 21 5.3 用缩写的指针比较“if(p)” 检查空指针是否可靠?如果空指针的内 部表达不是0 会怎么样? . . . . . . . . . . . . . . . . . . . . . . . 22 5.4 NULL 是什么, 它是怎么定义的? . . . . . . . . . . . . . . . . . . 23 5.5 在使用非全零作为空指针内部表达的机器上, NULL 是如何定义 的? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5.6 如果NULL 定义成#define NULL ((char *)0) 难道不就可以向函 数传入不加转换的NULL 了吗? . . . . . . . . . . . . . . . . . . 23 5.7 如果NULL 和0 作为空指针常数是等价的, 那我到底该用哪一个 呢? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.8 但是如果NULL 的值改变了, 比如在使用非零内部空指针的机器 上, 难道用NULL (而不是0) 不是更好吗? . . . . . . . . . . . . . 24 5.9 用预定义宏#define Nullptr(type) (type *)0 帮助创建正确类型的 空指针。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.10 这有点奇怪。NULL 可以确保是0, 但空(null) 指针却不一定? . . 24 5.11 为什么有那么多关于空指针的疑惑?为什么这些问题如此经常地 出现? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5.12 我很困惑。我就是不能理解这些空指针一类的东西。. . . . . . . 25 5.13 考虑到有关空指针的所有这些困惑, 难道把要求它们内部表达都 必须为0 不是更简单吗? . . . . . . . . . . . . . . . . . . . . . . . 26 5.14 说真的, 真有机器用非零空指针吗, 或者不同类型用不同的表达? 26 目录iv 5.15 运行时的“空指针赋值” 错误是什么意思? . . . . . . . . . . . . . 26 6 数组和指针27 6.1 我在一个源文件中定义了char a[6], 在另一个中声明了extern char *a 。为什么不行? . . . . . . . . . . . . . . . . . . . . . . . 27 6.2 可是我听说char a[ ] 和char *a 是一样的。. . . . . . . . . . . . . 27 6.3 那么, 在C 语言中“指针和数组等价” 到底是什么意思? . . . . . 28 6.4 那么为什么作为函数形参的数组和指针申明可以互换呢? . . . . . 28 6.5 如果你不能给它赋值, 那么数组如何能成为左值呢? . . . . . . . . 29 6.6 现实地讲, 数组和指针地区别是什么? . . . . . . . . . . . . . . . 29 6.7 有人跟我讲, 数组不过是常指针。. . . . . . . . . . . . . . . . . . 29 6.8 我遇到一些“搞笑” 的代码, 包含5["abcdef"] 这样的“表达式”。 这为什么是合法的C 表达式呢? . . . . . . . . . . . . . . . . . . 29 6.9 既然数组引用会蜕化为指针, 如果arr 是数组, 那么arr 和&arr 又 有什么区别呢? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.10 我如何声明一个数组指针? . . . . . . . . . . . . . . . . . . . . . 30 6.11 我如何在运行期设定数组的大小?我怎样才能避免固定大小的数 组? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.12 我如何声明大小和传入的数组一样的局部数组? . . . . . . . . . . 30 6.13 我该如何动态分配多维数组? . . . . . . . . . . . . . . . . . . . . 31 6.14 有个灵巧的窍门: 如果我这样写int realarray[10]; int *array = &realarray[-1]; 我就可以把“array” 当作下标从1 开始的数组。. . 32 6.15 当我向一个接受指针的指针的函数传入二维数组的时候, 编译器 报错了。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.16 我怎样编写接受编译时宽度未知的二维数组的函数? . . . . . . . 32 6.17 我怎样在函数参数传递时混用静态和动态多维数组? . . . . . . . 33 6.18 当数组是函数的参数时, 为什么sizeof 不能正确报告数组的大小? 34 7 内存分配35 7.1 为什么这段代码不行?char *answer; printf("Type something:nn"); gets(answer); printf("You typed n"%sn"nn", answer); . . . . . . . 35 7.2 我的strcat() 不行.我试了char *s1 = "Hello, "; char *s2 = "world!"; char *s3 = strcat(s1, s2); 但是我得到了奇怪的结果。. . . . . . . 35 7.3 但是strcat 的手册页说它接受两个char * 型参数。我怎么知道 (空间) 分配的事情呢? . . . . . . . . . . . . . . . . . . . . . . . . 36 7.4 我刚才试了这样的代码char *p; strcpy(p, "abc"); 而它运行正 常?怎么回事?为什么它没有崩溃? . . . . . . . . . . . . . . . . 36 7.5 一个指针变量分配多少内存? . . . . . . . . . . . . . . . . . . . . 36 7.6 我有个函数, 本该返回一个字符串, 但当它返回调用者的时候, 返 回串却是垃圾信息。. . . . . . . . . . . . . . . . . . . . . . . . . 36 目录v 7.7 那么返回字符串或其它集合的争取方法是什么呢? . . . . . . . . 37 7.8 为什么在调用malloc() 时, 我得到“警告: 整数赋向指针需要类型 转换”? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7.9 为什么有些代码小心地把malloc 返回的值转换为分配的指针类型。37 7.10 在调用malloc() 的时候, 错误“不能把void * 转换为int *” 是什 么意思? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7.11 我见到了这样的代码char *p = malloc(strlen(s) + 1); strcpy(p, s); 难道不应该是malloc((strlen(s) + 1) * sizeof(char))? . . . . . 37 7.12 我如何动态分配数组? . . . . . . . . . . . . . . . . . . . . . . . . 38 7.13 我听说有的操作系统程序使用的时候才真正分配malloc 申请的内 存。这合法吗? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 7.14 我用一行这样的代码分配一个巨大的数组, 用于数字运算: double *array = malloc(300 * 300 * sizeof( double )); malloc() 并没有返 回null, 但是程序运行得有些奇怪, 好像改写了某些内存, 或者 malloc() 并没有分配我申请的那么多内存, 云云。. . . . . . . . . 38 7.15 我的PC 有8 兆内存。为什么我只能分配640K 左右的内存? . . 38 7.16 我的程序总是崩溃, 显然在malloc 内部的某个地方。但是我看不 出哪里有问题。是malloc() 有bug 吗? . . . . . . . . . . . . . . . 38 7.17 动态分配的内存一旦释放之后你就不能再使用, 是吧? . . . . . . 38 7.18 为什么在调用free() 之后指针没有变空?使用(赋值, 比较) 释放 之后的指针有多么不安全? . . . . . . . . . . . . . . . . . . . . . 39 7.19 当我malloc() 为一个函数的局部指针分配内存时, 我还需要用 free() 明确的释放吗? . . . . . . . . . . . . . . . . . . . . . . . . 39 7.20 我在分配一些结构, 它们包含指向其它动态分配的对象的指针。 我在释放结构的时候, 还需要释放每一个下级指针吗? . . . . . . 39 7.21 我必须在程序退出之前释放分配的所有内存吗? . . . . . . . . . . 40 7.22 我有个程序分配了大量的内存, 然后又释放了。但是从操作系统 看, 内存的占用率却并没有回去。. . . . . . . . . . . . . . . . . . 40 7.23 free() 怎么知道有多少字节需要释放? . . . . . . . . . . . . . . . 40 7.24 那么我能否查询malloc 包, 可分配的最大块是多大? . . . . . . . 40 7.25 向realloc() 的第一个参数传入空指针合法吗?你为什么要这样做? 40 7.26 calloc() 和malloc() 有什么区别?利用calloc 的零填充功能安全 吗?free() 可以释放calloc() 分配的内存吗, 还是需要一个cfree()? 40 7.27 alloca() 是什么?为什么不提倡使用它? . . . . . . . . . . . . . . 41 8 字符和字符串43 8.1 为什么strcat(string, ’!’); 不行? . . . . . . . . . . . . . . . . . . 43 8.2 我在检查一个字符串是否跟某个值匹配。为什么这样不行?char *string; . . . if(string == "value") f /* string matches ”value” */ . . . g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 目录vi 8.3 如果我可以写char a[] = "Hello, world!"; 为什么我不能写char a[14]; a = "Hello, world!"; . . . . . . . . . . . . . . . . . . . . . . 43 8.4 我怎么得到对应字符的数字(字符集) 值, 或者相反? . . . . . . . 44 8.5 我认为我的编译器有问题: 我注意到sizeof(’a’) 是2 而不是1 (即, 不是sizeof(char))。. . . . . . . . . . . . . . . . . . . . . . . . . . 44 9 布尔表达式和变量45 9.1 C 语言中布尔值的候选类型是什么?为什么它不是一个标准类 型?我应该用#define 或enum 定义true 和false 值吗? . . . . . 45 9.2 因为在C 语言中所有的非零值都被看作“真”, 是不是把TRUE 定 义为1 很危险?如果某个内置的函数或关系操作符“返回” 不是1 的其它值怎么办? . . . . . . . . . . . . . . . . . . . . . . . . . . 45 9.3 当p 是指针时, if(p) 是合法的表达式吗? . . . . . . . . . . . . . 46 10 C 预处理器47 10.1 这些机巧的预处理宏: #define begin f #define end g 你觉得怎么 样? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 10.2 怎么写一个一般用途的宏交换两个值? . . . . . . . . . . . . . . . 47 10.3 书写多语句宏的最好方法是什么? . . . . . . . . . . . . . . . . . 47 10.4 我第一次把一个程序分成多个源文件, 我不知道该把什么放到.c 文件, 把什么放到.h 文件。(“.h” 到底是什么意思?) . . . . . . . 48 10.5 一个头文件可以包含另一头文件吗? . . . . . . . . . . . . . . . . 48 10.6 #include 和#include "" 有什么区别? . . . . . . . . . . . . 48 10.7 完整的头文件搜索规则是怎样的? . . . . . . . . . . . . . . . . . 49 10.8 我在文件的第一个声明就遇到奇怪的语法错误, 但是看上去没什 么问题。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 10.9 我包含了我使用的库函数的正确头文件, 可是连接器还是说它没 有定义。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 10.10 我在编译一个程序, 看起来我好像缺少需要的一个或多个头文 件。谁能发给我一份? . . . . . . . . . . . . . . . . . . . . . . . . 49 10.11 我怎样构造比较字符串的#if 预处理表达式? . . . . . . . . . . . 49 10.12 sizeof 操作符可以用于#if 预编译指令中吗? . . . . . . . . . . . . 50 10.13 我可以在#include 行里使用#ifdef 来定义两个不同的东西吗? . 50 10.14 对typdef 的类型定义有没有类似#ifdef的东西? . . . . . . . . . 50 10.15 我如何用#if 表达式来判断机器是高字节在前还是低字节在前? . 50 10.16 我得到了一些代码, 里边有太多的#ifdef。我不想使用预处理器 把所有的#include 和#ifdef 都扩展开, 有什么办法只保留一种条 件的代码呢? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 10.17 如何列出所有的预定义标识符? . . . . . . . . . . . . . . . . . . . 50 目录vii 10.18 我有些旧代码, 试图用这样的宏来构造标识符#define Paste(a, b) a/**/b 但是现在不行了。. . . . . . . . . . . . . . . . . . . . . . 51 10.19 为什么宏#define TRACE(n) printf("TRACE: %dnn", n) 报出警 告“用字符串常量代替宏”?它似乎应该把TRACE(count); 扩展 为printf("TRACE: %dncount", count); . . . . . . . . . . . . . . 51 10.20 使用# 操作符时, 我在字符串常量内使用宏参数有问题。. . . . . 51 10.21 我想用预处理做某件事情, 但却不知道如何下手。. . . . . . . . . 51 10.22 怎样写参数个数可变的宏? . . . . . . . . . . . . . . . . . . . . . 51 11 ANSI/ISO 标准C 53 11.1 什么是“ANSI C 标准”? . . . . . . . . . . . . . . . . . . . . . . . 53 11.2 我如何得到一份标准的副本? . . . . . . . . . . . . . . . . . . . . 53 11.3 我在哪里可以找到标准的更新? . . . . . . . . . . . . . . . . . . . 54 11.4 很多ANSI 编译器在遇到以下代码时都会警告类型不匹配。 extern int func(float); int func(x) float x; f . . . . . . . . . . . . . 54 11.5 能否混用旧式的和新型的函数语法? . . . . . . . . . . . . . . . . 55 11.6 为什么声明extern int f(struct x *p); 报出了一个奇怪的警告信 息“结构x 在参数列表中声明”? . . . . . . . . . . . . . . . . . . 55 11.7 我不明白为什么我不能象这样在初始化和数组维度中使用常量: const int n = 5; int a[n]; . . . . . . . . . . . . . . . . . . . . . . . 55 11.8 既然不能修改字符串常量, 为什么不把它们定义为字符常量的数 组? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 11.9 “const char *p” 和“char * const p” 有何区别? . . . . . . . . . . 56 11.10 为什么我不能向接受const char ** 的函数传入char **? . . . . . 56 11.11 怎样正确声明main()? . . . . . . . . . . . . . . . . . . . . . . . . 56 11.12 我能否把main() 定义为void, 以避免扰人的“main无返回值” 警 告? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 11.13 可main() 的第三个参数envp 是怎么回事? . . . . . . . . . . . . 57 11.14 我觉得把main() 声明为void 不会失败, 因为我调用了exit() 而不 是return , 况且我的操作系统也忽略了程序的退出/返回状态。. . 57 11.15 那么到底会出什么问题?真的有什么系统不支持void main() 吗? 57 11.16 我一直用的那本书《熟练傻瓜C语言》总是使用void main()。. . 57 11.17 从main() 中, exit(status) 和返回同样的status 真的等价吗? . . . 57 11.18 我试图用ANSI “字符串化” 预处理操作符# 向信息中插入符号 常量的值, 但它字符串化的总是宏的名字而不是它的值。. . . . . 58 11.19 警告信息“warning: macro replacement within a string literal” 是 什么意思? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 11.20 在我用#ifdef 去掉的代码里出现了奇怪的语法错误。. . . . . . . 58 11.21 #pragma 是什么, 有什么用? . . . . . . . . . . . . . . . . . . . . 59 11.22 “#pragma once” 是什么意思?我在一些头文件中看到了它。. . 59 11.23 a[3] = "abc"; 合法吗?它是什么意思? . . . . . . . . . . . . . . . 59 11.24 为什么我不能对void* 指针进行运算? . . . . . . . . . . . . . . . 59 11.25 memcpy() 和memmove() 有什么区别? . . . . . . . . . . . . . . 59 11.26 malloc(0) 有什么用?返回一个控指针还是指向0 字节的指针? . 59 11.27 为什么ANSI 标准规定了外部标示符的长度和大小写限制? . . . 60 11.28 我的编译对最简单的测试程序报出了一大堆的语法错误。. . . . . 60 11.29 为什么有些ASNI/ISO 标准库函数未定义?我明明使用的就是 ANSI 编译器。. . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 11.30 谁有把旧的C 程序转化为ANSI C 或相反的工具, 或者自动生成 原型的工具? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 11.31 为什么声称兼容ANSI 的Frobozz Magic C 编译器不能编译这些 代码?我知道这些代码是ANSI 的, 因为gcc 可以编译。. . . . . 60 11.32 人们好像有些在意实现定义(implementation-defin-ed)、未明确 (unspecified) 和无定义(undefined) 行为的区别。它们的区别到底 在哪里? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 11.33 一个程序的“合法”, “有效” 或“符合” 到底是什么意思? . . . . . 61 11.34 我很吃惊, ANSI 标准竟然有那么多没有定义的东西。标准的唯一 任务不就是让这些东西标准化吗? . . . . . . . . . . . . . . . . . 61 11.35 有人说i = i++ 的行为是未定义的, 但是我刚在一个兼容ANSI 的 编译器上测试, 得到了我希望的结果。. . . . . . . . . . . . . . . 62 12 标准输入输出库63 12.1 这样的代码有什么问题?char c; while((c = getchar()) != EOF) ... 63 12.2 我有个读取直到EOF 的简单程序, 但是我如何才能在键盘上输入 那个“EOF” 呢? . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 12.3 为什么这些代码while(!feof(infp)) f fgets(buf, MAXLINE, infp); fputs(buf, outfp); g 把最后一行复制了两遍? . . . . . . . . . . . 63 12.4 我的程序的屏幕提示和中间输出有时显示在屏幕上, 尤其是当我 用管道向另一个程序输出的时候。. . . . . . . . . . . . . . . . . 63 12.5 我怎样不等待回车键一次输入一个字符? . . . . . . . . . . . . . . 64 12.6 我如何在printf 的格式串中输出一个’%’?我试过n%, 但是不行。64 12.7 有人告诉我在printf 中使用%lf 不正确。那么, 如果scanf() 需要 %lf, 怎么可以用在printf() 中用%f 输出双精度数呢? . . . . . . . 64 12.8 对于size t 那样的类型定义, 当我不知道它到底是long 还是其它 类型的时候, 我应该使用什么样的printf 格式呢? . . . . . . . . . 64 12.9 我如何用printf 实现可变的域宽度?就是说, 我想在运行时确定 宽度而不是使用%8d? . . . . . . . . . . . . . . . . . . . . . . . . 64 12.10 如何输出在千位上用逗号隔开的数字?金额数字呢? . . . . . . . 65 12.11 为什么scanf("%d", i) 调用不行? . . . . . . . . . . . . . . . . . . 65 12.12 为什么char s[30]; scanf("%s", s); 不用& 也可以? . . . . . . . . 65 目录ix 12.13 为什么这些代码double d; scanf("%f", &d); 不行? . . . . . . . . 65 12.14 怎样在scanf() 格式串中指定可变的宽度? . . . . . . . . . . . . . 65 12.15 当我用“%dnn” 调用scanf 从键盘读取数字的时候, 好像要多输入 一行函数才返回。. . . . . . . . . . . . . . . . . . . . . . . . . . 65 12.16 我用scanf %d 读取一个数字, 然后再用gets() 读取字符串, 但是 编译器好像跳过了gets() 调用! . . . . . . . . . . . . . . . . . . . 66 12.17 我发现如果坚持检查返回值以确保用户输入的是我期待的数值, 则scanf() 的使用会安全很多, 但有的时候好像会陷入无限循环。. 66 12.18 为什么大家都说不要使用scanf()?那我该用什么来代替呢? . . . 66 12.19 我怎样才知道对于任意的sprintf 调用需要多大的目标缓冲区?怎 样才能避免sprintf() 目标缓冲区溢出? . . . . . . . . . . . . . . . 66 12.20 为什么大家都说不要使用gets()? . . . . . . . . . . . . . . . . . . 67 12.21 为什么调用printf() 之后errno 内有ENOTTY? . . . . . . . . . . 67 12.22 fgetops/fsetops 和ftell/fseek 之间有什么区别? fgetops() 和fsetops() 到底有什么用处? . . . . . . . . . . . . . . . . . . . . . . . 68 12.23 如何清除多余的输入, 以防止在下一个提示符下读入?fflush(stdin) 可以吗? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 12.24 既然fflush() 不能, 那么怎样才能清除输入呢? . . . . . . . . . . . 68 12.25 对某些路径文件名调用fopen() 总是失败。. . . . . . . . . . . . . 68 12.26 我想用“r+” 打开一个文件, 读出一个字符串, 修改之后再写入, 从 而就地更新一个文件。可是这样不行。. . . . . . . . . . . . . . . 69 12.27 怎样在程序里把stdin 或stdout 重定向到文件? . . . . . . . . . . 69 12.28 一旦使用freopen() 之后, 怎样才能恢复原来的stdout (或stdin)? 69 12.29 怎样同时向两个地方输出, 如同时输出到屏幕和文件? . . . . . . 69 12.30 怎样正确的读取二进制文件?我有时看到0x0a 和0x0d 混淆了, 而且如果数据中包含0x1a 的话, 我好像会提前遇到EOF。. . . . 70 13 库函数71 13.1 怎样把数字转为字符串(与atoi 相反)?有itoa() 函数吗? . . . . 71 13.2 为什么strncpy() 不能总在目标串放上终止符’n0’? . . . . . . . 71 13.3 为什么有些版本的toupper() 对大写字符会有奇怪的反应?为什 么有的代码在调用toupper() 前先调用tolower()? . . . . . . . . . 71 13.4 怎样把字符串分隔成用空白作间隔符的段?怎样实现类似传递给 main() 的argc 和argv? . . . . . . . . . . . . . . . . . . . . . . . 72 13.5 我需要一些处理正则表达式或通配符匹配的代码。. . . . . . . . 72 13.6 我想用strcmp() 作为比较函数, 调用qsort() 对一个字符串数组排 序, 但是不行。. . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 13.7 我想用qsort() 对一个结构数组排序。我的比较函数接受结构指 针, 但是编译器认为这个函数对于qsort() 是错误类型。我要怎样 转换这个函数指针才能避免这样的警告? . . . . . . . . . . . . . . 73 13.8 怎样对一个链表排序? . . . . . . . . . . . . . . . . . . . . . . . . 73 13.9 怎样对多于内存的数据排序? . . . . . . . . . . . . . . . . . . . . 73 13.10 怎样在C 程序中取得当前日期或时间? . . . . . . . . . . . . . . . 73 13.11 我知道库函数localtime() 可以把time t 转换成结构struct tm, 而 ctime() 可以把time t 转换成为可打印的字符串。怎样才能进行 反向操作, 把struct tm 或一个字符串转换成time t? . . . . . . . 74 13.12 怎样在日期上加N 天?怎样取得两个日期的时间间隔? . . . . . . 74 13.13 我需要一个随机数生成器。. . . . . . . . . . . . . . . . . . . . . 75 13.14 怎样获得在一定范围内的随机数? . . . . . . . . . . . . . . . . . 75 13.15 每次执行程序, rand() 都返回相同顺序的数字。. . . . . . . . . . 75 13.16 我需要随机的真/假值, 所以我用直接用rand() % 2, 可是我得到 交替的0, 1, 0, 1, 0 ⋯⋯ . . . . . . . . . . . . . . . . . . . . . . . 76 13.17 怎样产生标准分布或高斯分布的随机数? . . . . . . . . . . . . . . 76 13.18 我不断得到库函数未定义错误, 但是我已经#inlude 了所有用到 的头文件了。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 13.19 虽然我在连接时明确地指定了正确的函数库, 我还是得到库函数 未定义错误。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 13.20 连接器说end 未定义代表什么意思? . . . . . . . . . . . . . . . . 77 13.21 我的编译器提示printf 未定义!这怎么可能? . . . . . . . . . . . 77 14 浮点运算79 14.1 一个float 变量赋值为3.1 时, 为什么printf 输出的值为3.0999999? 79 14.2 执行一些开方根运算, 可是得到一些疯狂的数字。. . . . . . . . . 79 14.3 做一些简单的三角函数运算, 也引用了#include , 可是 一直得到编译错误“undefined: sin” (函数sin 未定义)。. . . . . . 79 14.4 浮点计算程序表现奇怪, 在不同的机器上给出不同的结果。. . . . 79 14.5 有什么好的方法来验对浮点数在“足够接近” 情况下的等值? . . . 80 14.6 怎样取整数? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 14.7 为什么C 不提供乘幂的运算符? . . . . . . . . . . . . . . . . . . 80 14.8 为什么我机器上的 没有预定义常数M PI? . . . . . . 80 14.9 怎样测试IEEE NaN 以及其它特殊值? . . . . . . . . . . . . . . . 81 14.10 在C 中如何很好的实现复数? . . . . . . . . . . . . . . . . . . . . 81 14.11 我要寻找一些实现以下功能的程序源代码:快速傅立叶变换 (FFT)、矩阵算术(乘法、倒置等函数)、复数算术。. . . . . . . 81 14.12 Turbo C 的程序崩溃, 显示错误为“floating point formats not linked” (浮点格式未连接)。. . . . . . . . . . . . . . . . . . . . . 81 15 可变参数83 15.1 为什么调用printf() 前, 必须要用#include ? . . . . . 83 15.2 为什么%f 可以在printf() 参数中, 同时表示float 和double?他们 难道不是不同类型吗? . . . . . . . . . . . . . . . . . . . . . . . . 83 15.3 为什么当n 为long int, printf("%d", n); 编译时没有匹配警告? 我以为ANSI 函数原型可以防止这样的类型不匹配。. . . . . . . 83 15.4 怎样写一个有可变参数的函数? . . . . . . . . . . . . . . . . . . . 83 15.5 怎样写类似printf() 的函数, 再把参数转传给printf() 去完成大部 分工作? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 15.6 怎样写类似scanf() 的函数, 再把参数转传给scanf() 去完成大部 分工作? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 15.7 怎样知道实际上有多少个参数传入函数? . . . . . . . . . . . . . . 85 15.8 为什么编译器不让我定义一个没有固定参数项的可变参数函数? . 86 15.9 我有个接受float 的可变参函数, 为什么va arg(argp, float) 不工作? 86 15.10 va arg() 不能得到类型为函数指针的参数。. . . . . . . . . . . . . 86 15.11 怎样实现一个可变参数函数, 它把参数再传给另一个可变参数函 数? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 15.12 怎样调用一个参数在执行是才建立的函数? . . . . . . . . . . . . 87 16 奇怪的问题89 16.1 遇到不可理解的不合理语法错误, 似乎大段的程序没有编译。. . 89 16.2 为什么过程调用不工作?编译器似乎直接跳过去了。. . . . . . . 89 16.3 程序在执行用之前就崩溃了, 用调试器单步跟进, 在main() 之前 就死了。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 16.4 程序执行正确, 但退出时崩溃在main() 最后一个语句之后。为什 么会这样? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 16.5 程序在一台机器上执行完美, 但在另一台上却得到怪异的结果。 更奇怪的是, 增加或去除调试的打印语句, 就改变了症状⋯⋯ . . . 90 16.6 为什么代码: char *p = "hello, worl!"; p[0] = ’H’; 会崩溃? . . . 90 16.7 “Segmentation violation”, “Bus error” 和“General protection fault” 意味着什么? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 17 风格93 17.1 什么是C 最好的代码布局风格? . . . . . . . . . . . . . . . . . . 93 17.2 用if(!strcmp(s1, s2)) 比较两个字符串等值,是否是个好风格? . . . 93 17.3 为什么有的人用if (0 == x) 而不是if (x == 0)? . . . . . . . . . 93 17.4 原型说明extern int func ((int, int)); 中, 那些多出来的括号和下 划线代表了什么? . . . . . . . . . . . . . . . . . . . . . . . . . . 94 17.5 为什么有些代码在每次调用printf() 前, 加了类型转换(void)? . . 94 17.6 什么是“匈牙利标志法” (Hungarian Notation)?是否值得用? . . 94 17.7 哪里可以找到“印第安山风格指南” (Indian Hill Style Guide) 及 其它编码标准? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 17.8 有些人说goto 是邪恶的, 我应该永不用它。那是否太极端了? . . 95 18 工具和资源97 18.1 常用工具列表。. . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 18.2 怎样抓捕棘手的malloc 问题? . . . . . . . . . . . . . . . . . . . . 98 18.3 有什么免费或便宜的编译器可以使用? . . . . . . . . . . . . . . . 98 18.4 刚刚输入完一个程序, 但它表现的很奇怪。你可以发现有什么错 误的地方吗? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 18.5 哪里可以找到兼容ANSI 的lint? . . . . . . . . . . . . . . . . . . 99 18.6 难道ANSI 函数原型说明没有使lint 过时吗? . . . . . . . . . . . 99 18.7 网上有哪些C 的教程或其它资源? . . . . . . . . . . . . . . . . . 99 18.8 哪里可以找到好的源代码实例, 以供研究和学习? . . . . . . . . . 100 18.9 有什么好的学习C 的书?有哪些高级的书和参考? . . . . . . . . 100 18.10 哪里可以找到标准C 函数库的源代码? . . . . . . . . . . . . . . . 101 18.11 是否有一个在线的C 参考指南? . . . . . . . . . . . . . . . . . . 101 18.12 哪里可以得到ANSI/ISO C 标准? . . . . . . . . . . . . . . . . . 101 18.13 我需要分析和评估表达式的代码。. . . . . . . . . . . . . . . . . 101 18.14 哪里可以找到C 的BNF 或YACC 语法? . . . . . . . . . . . . . 101 18.15 谁有C 编译器的测试套件? . . . . . . . . . . . . . . . . . . . . . 102 18.16 哪里有一些有用的源代码片段和例子的收集? . . . . . . . . . . . 102 18.17 我需要执行多精度算术的代码。. . . . . . . . . . . . . . . . . . . 102 18.18 在哪里和怎样取得这些可自由发布的程序? . . . . . . . . . . . . 102 19 系统依赖105 19.1 怎样从键盘直接读入字符而不用等RETURN 键?怎样防止字符 输入时的回显? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 19.2 怎样知道有未读的字符, 如果有, 有多少?如果没有字符, 怎样使 读入不阻断? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 19.3 怎样显示一个百分比或“转动的短棒” 的进展表示器? . . . . . . 106 19.4 怎样清屏?怎样输出彩色文本?怎样移动光标到指定位置? . . . 106 19.5 怎样读入方向键, 功能键? . . . . . . . . . . . . . . . . . . . . . . 107 19.6 怎样读入鼠标输入? . . . . . . . . . . . . . . . . . . . . . . . . . 107 19.7 怎样做串口(“comm”) 的输入输出? . . . . . . . . . . . . . . . . 107 19.8 怎样直接输出到打印机? . . . . . . . . . . . . . . . . . . . . . . . 107 19.9 怎样发送控制终端或其它设备的逃逸指令序列? . . . . . . . . . . 108 19.10 怎样直接访问输入输出板? . . . . . . . . . . . . . . . . . . . . . 108 19.11 怎样做图形? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 19.12 怎样显示GIF 和JPEG 图象? . . . . . . . . . . . . . . . . . . . 108 19.13 怎样检验一个文件是否存在? . . . . . . . . . . . . . . . . . . . . 108 19.14 怎样在读入文件前, 知道文件大小? . . . . . . . . . . . . . . . . . 109 19.15 怎样得到文件的修改日期和时间? . . . . . . . . . . . . . . . . . 109 19.16 怎样缩短一个文件而不用清除或重写? . . . . . . . . . . . . . . . 109 19.17 怎样在文件中插入或删除一行(或记录)? . . . . . . . . . . . . . . 109 19.18 怎样从一个打开的流或文件描述符得到文件名? . . . . . . . . . . 110 19.19 怎样删除一个文件? . . . . . . . . . . . . . . . . . . . . . . . . . 110 19.20 怎样复制一个文件? . . . . . . . . . . . . . . . . . . . . . . . . . 110 19.21 为什么用了详尽的路径还不能打开文件? fopen("c:n newdir nfile.dat", "r") 返回错误。. . . . . . . . . . . . . . . . . . . . . . 110 19.22 fopen() 不让我打开文件: "$HOME/.profile" 和"˜/ .myrcfile"。. 111 19.23 怎样制止MS-DOS 下令人担忧的“Abort, Retry, Ignore?” 信息? 111 19.24 遇到“Too many open files (打开文件太多)” 的错误, 怎样增加同 时打开文件的允许数目? . . . . . . . . . . . . . . . . . . . . . . . 111 19.25 怎样在C 中读入目录? . . . . . . . . . . . . . . . . . . . . . . . . 111 19.26 怎样找出系统还有多少内存可用? . . . . . . . . . . . . . . . . . 111 19.27 怎样分配大于64K 的数组或结构? . . . . . . . . . . . . . . . . . 111 19.28 错误信息“DGROUP data allocation exceeds 64K (DGROUP 数 据分配内存超过64K)” 说明什么?我应该怎么做?我以为使用了 大内存模型, 那我就可以使用多于64K 的数据! . . . . . . . . . . 112 19.29 怎样访问位于某的特定地址的内存(内存映射的设备或图显内存)? 112 19.30 怎样在一个C 程序中调用另一个程序(独立可执行的程序, 或系统 命令)? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 19.31 怎样调用另一个程序或命令, 同时收集它的输出? . . . . . . . . . 113 19.32 怎样才能发现程序自己的执行文件的全路径? . . . . . . . . . . . 113 19.33 怎样找出和执行文件在同一目录的配置文件? . . . . . . . . . . . 113 19.34 一个进程如何改变它的调用者的环境变量? . . . . . . . . . . . . 113 19.35 怎样读入一个对象文件并跳跃到其中的地址? . . . . . . . . . . . 114 19.36 怎样实现精度小于秒的延时或记录用户回应的时间? . . . . . . . 114 19.37 怎样抓获或忽略像control-C 这样的键盘中断? . . . . . . . . . . 114 19.38 怎样很好地处理浮点异常? . . . . . . . . . . . . . . . . . . . . . 115 19.39 怎样使用socket?网络化?写客户/服务器程序? . . . . . . . . . 115 19.40 怎样调用BIOS 函数?写ISR?创建TSR? . . . . . . . . . . . . 115 19.41 编译程序, 编译器出示“union REGS” 未定义错误信息, 连接器出 示“int86()” 的未定义错误信息。. . . . . . . . . . . . . . . . . . 115 19.42 什么是“near” 和“far” 指针? . . . . . . . . . . . . . . . . . . . . 116 19.43 我不能使用这些非标准、依赖系统的函数, 程序需要兼容ANSI! . 116 20 杂项117 20.1 怎样从一个函数返回多个值? . . . . . . . . . . . . . . . . . . . . 117 20.2 怎样访问命令行参数? . . . . . . . . . . . . . . . . . . . . . . . . 117 20.3 怎样写数据文件, 使之可以在不同字大小、字节顺序或浮点格式 的机器上读入? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 20.4 怎样调用一个由char * 指针指向函数名的函数? . . . . . . . . . 117 20.5 怎样实现比特数组或集合? . . . . . . . . . . . . . . . . . . . . . 118 20.6 怎样判断机器的字节顺序是高字节在前还是低字节在前? . . . . . 118 20.7 怎样掉换字节? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 20.8 怎样转换整数到二进制或十六进制? . . . . . . . . . . . . . . . . 119 20.9 我可以使用二进制常数吗?有printf() 的二进制的格式符吗? . . 119 20.10 什么是计算整数中比特为1 的个数的最有效的方法? . . . . . . . 119 20.11 什么是提高程序效率的最好方法? . . . . . . . . . . . . . . . . . 119 20.12 指针真得比数组快吗?函数调用会拖慢程序多少? ++i 比i = i +1 快吗? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 20.13 人们说编译器优化的很好, 我们不在需要为速度而写汇编了, 但我 的编译器连用移位代替i/=2 都做不到。. . . . . . . . . . . . . . 120 20.14 怎样不用临时变量而交换两个值? . . . . . . . . . . . . . . . . . 120 20.15 是否有根据字符串做切换的方法? . . . . . . . . . . . . . . . . . 121 20.16 是否有使用非常量case 标志的方法(例如范围或任意的表达式)? 121 20.17 return 语句外层的括号是否真的可选择? . . . . . . . . . . . . . . 121 20.18 为什么C 注释不能嵌套?怎样注释掉含有注释的代码?引用字符 串内的注释是否合法? . . . . . . . . . . . . . . . . . . . . . . . . 121 20.19 C 是个伟大的语言还是别的?哪个其它语言可以写象a+++++b 这样的代码? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 20.20 为什么C 没有嵌套函数? . . . . . . . . . . . . . . . . . . . . . . 122 20.21 assert() 是什么?怎样用它? . . . . . . . . . . . . . . . . . . . . . 122 20.22 怎样从C 中调用FORTRAN (C++, BASIC, Pascal, Ada, LISP) 的函数?反之亦然? . . . . . . . . . . . . . . . . . . . . . . . . . 122 20.23 有什么程序可以做从Pascal 或Fortran (或LISP, Ada, awk, “老” C) 到C 的转换? . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 20.24 C++ 是C 的超集吗?可以用C++ 编译器来编译C 代码吗? . . 123 20.25 需要用到“近似” 的strcmp, 比较两个字符串的近似度, 并不需要 完全一样。. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 20.26 什么是散列法? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 20.27 由一个日期, 怎样知道是星期几? . . . . . . . . . . . . . . . . . . 124 20.28 (year%4 == 0) 是否足够判断润年?2000 年是闰年吗? . . . . . . 124 20.29 一个难题: 怎样写一个输出自己源代码的程序? . . . . . . . . . . 124 20.30 什么是“达夫设备” (Duff’s Device)? . . . . . . . . . . . . . . . . 125 20.31 下届国际C 混乱代码竞赛(IOCCC) 什么时候进行?哪里可以找 到当前和以前的获胜代码? . . . . . . . . . . . . . . . . . . . . . 125 20.32 [K&R1] 提到的关健字entry 是什么? . . . . . . . . . . . . . . . . 126 20.33 C 的名字从何而来? . . . . . . . . . . . . . . . . . . . . . . . . . 126 20.34 “char” 如何发音? . . . . . . . . . . . . . . . . . . . . . . . . . . 126 20.35 “lvalue” 和“rvalue” 代表什么意思? . . . . . . . . . . . . . . . . 126 20.36 哪里可以取得本FAQ (英文版) 的额外副本? . . . . . . . . . . . 126

最新推荐

ISO/IEC 15693标准简要介绍

1.符合ISO/IEC 15693标准的信号接口部分的性能如下: 1.1 工作频率 工作频率为13.56MKz±7KHz 1.2 工作场强 工作场的最小值为0.15A/m,最大场为5A/m。 1.3 调制 用2种幅值调制方式,即10%和100%调制方式。...

linux系统GHOST备份实施方案.doc

1.3。启动CENTOS4。3,把目标盘分成一个区,建立EXT3文件系统。不挂载。重启。 1.4。用G4L ISO启动系统。用其默认核心系统启动。 1.5。#sh g4l,启动G4L系统  选择“RAW MODE ”  选择”CLICK N CLONE“ 整盘...

FreeNAS 开发人员手册

FreeNAS0.68开发人员手册 1 安装FreeBSD 1.1 安装 1.2 配置User 和 Shell 1.2.1 安装Bash Shell 1.2.2 配置Bash 1.3 升级FreeBSD宿主系统源代码树 1.3.1 安装CVSup ...2.12.2 创建可引导iso文件

emWin5用户手册(中文)

1.3 如何使用本手册 .........................................................................................24 1.4 语法句子的印刷规范 .....................................................................

Linux使用教程(教程)

制作ISO文件 40 ※2.挂接移动硬盘 41 ※3.挂接U盘 42 五、文件安全与权限 42 ※1.文件安全策略 42 ※2.文件权限位 42 ※3.文件类型 43 ※4.改变权限chmod 43 ※4.1符号模式 43 ※4.2绝对模式 44 ※目录 44 ※5.chown...

数据结构1800试题.pdf

你还在苦苦寻找数据结构的题目吗?这里刚刚上传了一份数据结构共1800道试题,轻松解决期末挂科的难题。不信?你下载看看,这里是纯题目,你下载了再来私信我答案。按数据结构教材分章节,每一章节都有选择题、或有判断题、填空题、算法设计题及应用题,题型丰富多样,共五种类型题目。本学期已过去一半,相信你数据结构叶已经学得差不多了,是时候拿题来练练手了,如果你考研,更需要这份1800道题来巩固自己的基础及攻克重点难点。现在下载,不早不晚,越往后拖,越到后面,你身边的人就越卷,甚至卷得达到你无法想象的程度。我也是曾经遇到过这样的人,学习,练题,就要趁现在,不然到时你都不知道要刷数据结构题好还是高数、工数、大英,或是算法题?学完理论要及时巩固知识内容才是王道!记住!!!下载了来要答案(v:zywcv1220)。

语义Web动态搜索引擎:解决语义Web端点和数据集更新困境

跟踪:PROFILES数据搜索:在网络上分析和搜索数据WWW 2018,2018年4月23日至27日,法国里昂1497语义Web检索与分析引擎Semih Yumusak†KTO Karatay大学,土耳其semih. karatay.edu.trAI 4 BDGmbH,瑞士s. ai4bd.comHalifeKodazSelcukUniversity科尼亚,土耳其hkodaz@selcuk.edu.tr安德烈亚斯·卡米拉里斯荷兰特文特大学utwente.nl计算机科学系a.kamilaris@www.example.com埃利夫·尤萨尔KTO KaratayUniversity科尼亚,土耳其elif. ogrenci.karatay.edu.tr土耳其安卡拉edogdu@cankaya.edu.tr埃尔多安·多杜·坎卡亚大学里扎·埃姆雷·阿拉斯KTO KaratayUniversity科尼亚,土耳其riza.emre.aras@ogrenci.karatay.edu.tr摘要语义Web促进了Web上的通用数据格式和交换协议,以实现系统和机器之间更好的互操作性。 虽然语义Web技术被用来语义注释数据和资源,更容易重用,这些数据源的特设发现仍然是一个悬 而 未 决 的 问 题 。 流 行 的 语 义 Web �

给出推荐算法的具体方法

### 回答1: 好的,下面是基于内容的推荐算法的具体方法: 1. 特征提取:根据音乐家的特征数据,提取出一些关键特征,比如音乐风格、代表作品等。可以使用TF-IDF算法或者词袋模型对特征进行处理。 2. 相似度计算:根据特征提取的结果,计算出音乐家之间的相似度。可以使用余弦相似度或者皮尔逊相关系数等算法计算相似度。 3. 推荐分数计算:根据用户的历史喜好和音乐家之间的相似度,计算出每个音乐家的推荐分数。可以使用加权平均数等方法计算推荐分数。 4. 结果排序:根据推荐分数,对音乐家进行排序,推荐给用户。 具体实现方法如下: 1. 特征提取:首先将音乐家的特征数据转化为向量形式,比如

TFT屏幕-ILI9486数据手册带命令标签版.pdf

ILI9486手册 官方手册 ILI9486 is a 262,144-color single-chip SoC driver for a-Si TFT liquid crystal display with resolution of 320RGBx480 dots, comprising a 960-channel source driver, a 480-channel gate driver, 345,600bytes GRAM for graphic data of 320RGBx480 dots, and power supply circuit. The ILI9486 supports parallel CPU 8-/9-/16-/18-bit data bus interface and 3-/4-line serial peripheral interfaces (SPI). The ILI9486 is also compliant with RGB (16-/18-bit) data bus for video image display. For high speed serial interface, the ILI9486 also provides one data and clock lane and supports up to 500Mbps on MIPI DSI link. And also support MDDI interface.

数据搜索和分析

跟踪:PROFILES数据搜索:在网络上分析和搜索数据WWW 2018,2018年4月23日至27日,法国里昂1485表征数据集搜索查询艾米莉亚·卡普尔扎克英国南安普敦大学开放数据研究所emilia. theodi.org珍妮·坦尼森英国伦敦开放数据研究所jeni@theodi.org摘要在Web上生成和发布的数据量正在迅速增加,但在Web上搜索结构化数据仍然存在挑战。在本文中,我们探索数据集搜索分析查询专门为这项工作产生的通过众包-ING实验,并比较它们的搜索日志分析查询的数据门户网站。搜索环境的变化以及我们给人们的任务改变了生成的查询。 我们发现,在我们的实验中发出的查询比数据门户上的数据集的搜索查询要长得多。 它们还包含了七倍以上的地理空间和时间信息的提及,并且更有可能被结构化为问题。这些见解可用于根据数据集搜索的特定信息需求和特征关键词数据集搜索,�