专栏导航

上一篇:Windows 编程辅助技能:速览定义

回到目录

下一篇:无

本节前言

本节来分享一个小的知识点,具体地,我们在下面来细说。

一.    Windows 系统的文件与文件夹的名字,不区分大小写

请大家随意地打开一个文件夹,C 盘里面文件夹也好,D 盘里面的文件夹也行,随便打开一个就行。

接下来呢,请你新建一个 word 文档,将其命名为【test.docx】。然后呢,你再试着新建一个 word 文档,将其命名为【Test.docx】,看看结果如何。

在我这里,新建【test.docx】之后的结果如下。

图1

新建第二个文件,也就是建立【Test.docx】的时候,出现了以下情形。

图2

为啥会出现这样的情形呢?

在 Windows 操作系统里面,【test.docx】,【Test.docx】,【TeST.Docx】,这几个文件,是同一个文件。在同一个文件夹里面,只能出现一个。

在 Windows 操作系统里面,如果两个文件或文件夹的名字,它们中涉及英文字母的部分,如果所用的英文字母都是相同的,但是大小写不完全相同,则这两个文件或者文件被视为同一个东西,并且在同一个文件夹里面,不能够同时出现两个【英文字母相同,但大小写不完全相同】的文件或文件夹。

在 Windows 操作系统里面,【test.c】,【test.C】,【teST.c】都被视为相同的名字,因为他们的英文字母是相同的,只是大小写不完全相同而已。不允许其中的任意两个文件出现在同一个文件夹里面。

而在 Linux 操作系统里面,【test.c】,【test.C】,【teST.c】会被视为不同的名字,允许它们出现在同一个文件夹里面。

在 Linux 内核源代码里面,可能会出现说,同一个文件夹里面,包含有【main.S】和【main.s】,这俩代码文件的名字,只有最后的扩展名的大小写不同。Linux 操作系统里面,允许在一个文件夹里面,同时包含【main.S】和【main.s】,但 Windows 操作系统里面不允许。

所以呢,如果以后大家去下载了 Linux 内核源代码以后,将其解压缩的时候,会出现提示,问你对于某些个相同文件名的东西,选择替换,还是重命名。此时,为了能够完整地查看源代码,你最好选择全部重命名。

二.    不区分大小写,有何用处?

Windows 系统中,同一个文件夹里面,不区分里面的文件或文件夹名字的大小写,有什么意义呢?

假定,我们在查看教材中的代码的时候,发现,在某一个 C/C++ 源代码文件中,包含有一个头文件,它的文件名为【Windows.h】。假定这一行代码以如下方式书写。

#include <Windows.h>

这么书写是对的。

然而,你也按以下的几种方式来书写。

#include <windows.h>

#include <Windows.H>

#include <WinDows.h>

#include <WINDOWS.H>

之所以可以这么来书写,是因为,Windows 中文件与文件夹名不区分大小写的缘故。不论你写成了哪一种,引用到的,都是同一个头文件。

这是一个小知识,不难。

我之所以会单独列出一节,来讲解这一知识,是因为,在今后的课节中,我们很可能还会用到这一节的知识。为了免除重复讲解这一知识点的麻烦,我就单独地列出一节,来讲解了这一点。

结束语

Windows 编程中,需要去了解和掌握的小知识点也不少。

本节结束。

专栏导航

上一篇:Windows 编程辅助技能:速览定义

回到目录

下一篇:无

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/92655.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/92655.shtml
英文地址,请注明出处:http://en.pswp.cn/web/92655.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌套-列表存储字典,字典存储列表,字典存储字典

字典存储列表aliens []for alien in range(10):new_alien {"id": alien, "color": "green", "speed": "slow" , "points": 20}aliens.append(new_alien)for alien in aliens[:5]:print(alien) print("...&…

个人笔记Mybatis2

4.配置解析4.1核心配置文件mybatis-config.xmlMyBatis配置包含对MyBatis行为方式有显著影响的设置和属性在 MyBatis 中有两种类型的事务管理器 (也就是 type"[JDBC|MANAGED]”configuration(配置) properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类…

使用 Maxwell 和 RabbitMQ 监控 Mysql Flowable 表变更

为什么需要监控数据库变化&#xff1f;当 Flowable 表中的数据发生变化&#xff08;例如插入新任务、更新状态或删除记录&#xff09;&#xff0c;我们可能需要触发其他操作&#xff0c;比如通知用户、更新仪表盘或启动新流程。Maxwell 可以读取 MySQL 的二进制日志&#xff08…

MySQL面试题及详细答案 155道(041-060)

《前后端面试题》专栏集合了前后端各个知识模块的面试题&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

mysql_mcp_server_pro源码部署及启动报错新手指南:让智能体长出手来直接获取到最底层的数据

文章目录 源码部署 1.克隆项目地址 2.创建虚拟环境 3.激活环境 4.进入项目目录下 5.安装依赖 6.进入到src目录 7.在当前目录下,新建一个.env文件 8.配置数据库信息 9.启动项目 10.启动权限管理启动项目 启动报错了: 问题现象与直接原因 解决方案与操作步骤 方案1:允许忽略未定…

jupyter服务器创建账户加映射对外账户地址

文章目录一、创建test1-test10用户&#xff08;跳过已存在的test3&#xff09;二、检查必要组件是否安装解决方法&#xff1a;用紧凑格式避免换行解析错误核心修复说明&#xff1a;使用方法&#xff1a;以下是根据需求生成的命令、检查脚本及启动脚本&#xff0c;按步骤执行即可…

DDR中的POD与ODT

一、POD&#xff08;Pseudo Open Drain&#xff09;技术1. 定义与工作原理POD&#xff08;伪开漏&#xff09; 是DDR4/LPDDR4引入的电压标准与驱动架构&#xff0c;替代传统的SSTL&#xff08;Stub Series Terminated Logic&#xff09;。其核心特征是将上拉电源从VDDQ改为VTT&…

企业架构之导论(1)

一、企业架构是什么 企业架构是对企业业务、数据、应用、技术四大核心领域及其相互关系的系统化描述与设计框架。它像一张“城市蓝图”,确保业务战略能精准映射到IT落地: 本质:是连接业务战略(做什么)与技术执行(怎么做)的结构化方法论。 核心组件: 业务架构:定义业…

实战:在已有K8S集群如何新增和删除Node节点

本篇文章将分享一下如何在已有集群添加新节点和删除现有节点1 新增节点到K8S集群新增节点可以分为准备节点、配置节点和将其加入集群三步。1.1 准备新节点准备一个相同操作系统的主机作为新节点。参考以前部署的文章&#xff1a;实战部署k8s 1.28版本集群&#xff0c;跟着操作到…

C++ 黑马 内存分配模型

一, 内存分配模型内存总共有四个分区1 代码区 主要用来存储二进制代码&#xff0c;由操作系统进行管理2 栈区 由编译器自己进行释放和分配&#xff0c;例如函数的传递的参数&#xff0c;局部变量&#xff0c;const修饰的局部常量等等....3 堆区 由程序员自己分配和释放&am…

【华为仓颉编程语言】运行第一个仓颉程序

欢迎来到仓颉编程语言的第一个实战课程。 上节课我们成功安装了仓颉工具链&#xff0c;今天让我们一起编写并运行第一个仓颉程序。相信很多同学都还记得学习第一门编程语言时写的"Hello World"程序&#xff0c;那种看到程序成功运行的激动心情。今天&#xff0c;我们…

利用DeepSeek改写并增强测试Duckdb和sqlite的不同插入方法性能

在前文基础上&#xff0c;好奇作为事务型数据库的SQLite表现怎么样&#xff0c;让DeepSeek来帮忙。 提示词 请仿照附件编写用python插入sqlite数据的测试函数&#xff0c;如果sqlite3没有对应方法就省略 import sqlite3 import pandas as pd import timemethods [字符串拼接, …

进程管理块(PCB):操作系统进程管理的核心数据结构

进程管理块&#xff08;PCB&#xff09;&#xff1a;操作系统进程管理的核心数据结构在现代操作系统中&#xff0c;进程管理块&#xff08;Process Control Block, PCB&#xff09; 是内核用来描述、管理和控制进程生命周期的最核心、最关键的数据结构。它就像是一个进程的“身…

线程的sleep、wait、join、yield如何使用?

sleep:让线程睡眠&#xff0c;期间会出让cpu&#xff0c;在同步代码块中&#xff0c;不会释放锁 wait(必须先获得对应的锁才能调用):让线程进 入等待状态,释放当前线程持有的锁资源线程只有在notify 或者notifyAll方法调用后才会被唤醒,然后去争夺锁. join: 线程之间协同方式,使…

2025年服装智能跟单系统TOP3推荐榜单

TOP1领军者首选推荐&#xff1a;金蝶服装系统【★★★★★】 在服装智能跟单系统的领域&#xff0c;金蝶服装系统凭借其强大的功能和卓越的性能脱颖而出&#xff0c;成为众多企业的首选。尽管本文标题提及的是另一份榜单&#xff0c;但值得一提的是&#xff0c;金蝶系统若参与评…

基于FFmpeg的B站视频下载处理

起因是这样的一天&#xff0c;本人在B站客户端缓存了一个视频&#xff0c;用于学习参考等学术交流&#xff0c;但是视频和音频却是分开且通过Win Hex查看发现文件头含有9个“30”&#xff0c;想到一个个手动删字节不如让程序取代&#xff0c;便有了本文章这一篇文章发布之前&am…

【Vue Router】路由模式、懒加载、守卫、权限、缓存

前言 Vue Router 是 Vue 生态中处理页面跳转的核心工具&#xff0c;它解决了单页应用中 URL 管理、组件切换、状态维护等关键问题&#xff0c;同时提供了丰富的功能&#xff08;如动态路由、嵌套路由、路由守卫&#xff09;。除了经常用到的路由配置以外&#xff0c;我们还需了…

Linux epoll 实现详解 (fs/eventpoll.c)

核心数据结构分析 1. struct eventpoll (epoll 实例核心结构) c struct eventpoll {struct mutex mtx; // 保护 epoll 结构的互斥锁wait_queue_head_t wq; // epoll_wait() 使用的等待队列wait_queue_head_t poll_wait; // 文件 poll() 使用的等待队列struc…

【牛客刷题】小红的项链(字节跳动面试题)

文章目录 一、题目介绍 1.1 输入描述 1.2 输出描述 1.3 示例 二、算法设计思路 三、流程图 四、题解实现 五、复杂度分析 六、关键算法知识点 一、题目介绍 原题链接:https://www.nowcoder.com/practice/3da065cab096478eb603bbfca5af8b02 小红将 n n n个珠子排成一排,然后…

【Html网页模板】HTML炫酷星空(一闪一闪亮晶晶)

文章目录专栏导读功能预览快速开始核心实现拆解1. 背景与基础布局2. 背景层静态星空&#xff08;轻微闪烁&#xff09;3. 前景层“亮晶晶”的闪烁小星星4. 交互与动效5. 行星装饰可配置项与个性化建议初始化顺序&#xff08;入口&#xff09;源码结语专栏导读 &#x1f525;&am…