导航:首页 > 源码编译 > 编译器识别文件名大小写

编译器识别文件名大小写

发布时间:2022-09-08 13:42:58

㈠ c语言头文件 大小写问题

大小写对于头文件,有以下三种情况,分别介绍:

1. C语言本身对大小写敏感,所以写在C语言头文件,即.h文件中的C语言符号,必须是区分大小写的。包括宏定义,变量名,类型名,字符串,函数名,参数名等等,所有C语言的标识符都是区分大小写的。
比如
Str, STR, 以及str是三个完全不同的标识符。

2. 如果在window下编程,由于windows操作系统的文件系统,对文件名和路径不区分大小写,这时在编程时使用操作系统相关的操作时,包括
1) 引用头文件;
2) 执行系统命令
3) 打开系统文件。
均可以不区分大小写。
于是在头文件中如果涉及到了相关操作,是可以不区分大小写的。

3. 注释部分,由于不是给编译器读的,而是给读代码的人准备,所以大小写可以一定程度上放松,只要可以看懂即可。

㈡ c,C++,c#为什么要大小写敏感

c,c++,c#的标识符是大小写敏感的。本人一直十分疑惑,这个到底是优点还是缺点?
说实话,不知道哪位大虾写代码的时候喜欢用同时使用相同的拼写但大小写不同的标识符如:
int myName;
int myname;
这样做只会引起逻辑上的混乱。
而且使用C系列的语言由于标识符写错造成编译错误的问题可能占了不少的数量,特别是当标识符很长
时,特别容易出错,而编译器在你输入标识符的时候根本不进行检查。而VB系列就做得十分人性化,标识符的拼写错误在第一时间就能被发现。

这样就只有一个解释:因为C的历史比较悠久,而且比较接近底层,而大小写字符从底层编码上说是完全不同的字符(ASCII码不同)因此编译器在设计时,就把大小写字符作为完全不同的字符来考虑。(这个可以认为是编译器设计者偷懒的做法)。可是到了现在,C已经发展了N代了,可是依旧得背这个承重的历史包袱,实在是可惜。

另外有不少FANS认为这个是表明使用C语言的程序员功力的地方,本人不敢苟同,如果你真要体现功力完全可以用汇编,甚至用机器码,那个看起来更牛。

㈢ 有关Turbo PASCAL和Free PASCAL的问题

下面是在Turbo Pascal上可以使用,但是在Free Pascal就不能使用的一些语言特性:

1.函数和过程在使用时,参数的类型必须和定义时完全一致。原因是在Free Pascal中添加了函数重载功能。

2.PROTECTED,PUBLIC,PUBLISHED,TRY,FINALLY,EXCEPT,RAISE成为了关键字,因此不能作为函数和过程的名字。

3.FAR,NEAR不再是关键字了。原因是Free Pascal是32位系统,不再需要这些关键字。

4.布尔表达式不一定要全部进行计算。只要最终结果已经能够确定,就不再计算其它还没有计算的部分了。比如布尔表达式exp1 AND exp2 AND exp3,如果已知exp1的结果是false,那么怎么表达式的结果肯定是false,exp2和exp3就不用进行计算了。

5.在Free Pascal中,集合中的元素都是4个字节长的。

6.表达式执行的顺序是不确定的。比如对于表达式a:=g(2)+f(3); 不保证g(2)一定在f(3)之前执行。

7.如果用Rewrite打开文件,那么文件就只能被写入了。如果需要读取这个文件,要对文件执行Reset。

8.Free Pascal在程序结束之前一定要关闭输出文件,否则输出文件可能不能被正确的写入。

9.Free Pascal理论上可以使用4GB的内存,因此实际上几乎可以使用系统中的所有剩余内存(除非程序有内存限制)。这是Free Pascal由于32位的编译器。但是对于Turbo Pascal来说,由于是16位的编译器,因此不能定义大小超过64KB的数据类型和变量,并且在DOS实模式下可以使用的内存总数只有640KB。

下面是Free Pascal相对于Turbo Pascal扩充的一些功能:

1.函数可以返回复杂的类型,比如记录和数组。

2.在函数中,函数的返回值可以作为一个变量来处理。比如:

function a : longint;

begin

a:=12;

while a>4 do

begin

{...}

end;

end;

这个例子在Turbo Pascal中,a>4会被认为是函数的递归调用,但是在Free Pascal中会认为a只是一个变量。如果想在Free Pascal中实现递归调用,就要写成下面的形式:

function a : longint;

begin

a:=12;

{ this is the recursive call }

if a()>4 then

begin

{...}

end;

end;

3.exit可以接受一个参数作为函数的返回值。比如:

function a : longint;

begin

a:=12;

if a>4 then

begin

exit(a*67); {函数的返回值就是a*67 }

end;

end;

4.Free Pascal支持函数重载。可以用相同的名字定义不同的函数,只要这些函数的参数不同,就是不同的函数。比如:

procere DoSomething (a : longint);

begin

{...}

end;

procere DoSomething (a : real);

begin

{...}

end;

可以使用不同的参数类型longint或者real来调用不同的DoSomething过程。

由于这个功能,函数的提前声明必须有完整的参数声明:

procere x (v : longint); forward;

{...}

procere x;{ 这里定义的过程x重载了前面声明的过程x。因此这里的两个x是不同的}

begin

{...}

end;

5.Free Pascal容许运算符重载。比如,可以自己为矩阵运算定义一个“+”运算。

6.Free Pascal在windows 95及其以上的windows版本上支持长文件名。对于文件名,由于windows系统对大小写不敏感,因此在程序中,文件名的大小写是无关的。但是对于其它大小写敏感的系统,比如linux,程序中用到的文件名必须和系统中的文件名完全一致。但是由于信息学竞赛的评测系统一般是linux,因此要求程序中的文件名和系统中的文件名一样。

㈣ 推荐编写代码的工具能调整大写 如filename如何自动写成FileName

我只能说呵呵,是谁告诉题主这才是规范的?

硬要说规范的话,fileName 才是“比较”通用的写法。

很荣幸的告诉题主,没有!

原因就是 VB 是一门大小写不敏感型语言,同一个词不分大小写,编译器都会认为是一个词且会自动转换,所以开发出来题主想要的这种工具是根本没有用的。

㈤ 关于java里类名和class文件名的首字母大小写问题。

小写是可以,但是习惯首字母大写;并且java文件名要和类名一样,这是规定。
网上找了个编程规范,供参考:

3. 命名约定
所有变量的定义应该遵循匈牙利命名法,它使用3字符前缀来表示数据类型,3个字符的前缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,其它字母小写,这样保证了对变量名能够进行正确的断句。
这样,在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容,这使得代码语句可读性强、更加容易理解。

3.1 包、类及方法命名

标示符类型 命名约定 例子
包 全部小写。
 标识符用点号分隔开来。为了使包的名字更易读,Sun 公司建议包名中的标识符用点号来分隔。
 Sun 公司的标准 java 分配包用标识符 .java 开头。
 全局包的名字用你的机构的 Internet 保留域名开头 。 局部包:
interface.screens
全局包:
com.rational.www. interface.screens
类,接口  类的名字应该使用名词。
 每个单词第一个字母应该大写。
 避免使用单词的缩写,除非它的缩写已经广为人知,如HTTP。 Class Hello ;
Class HelloWorld ;
Interface Apple ;
方法  第一个单词一般是动词。
 第一个字母是小些,但是中间单词的第一个字母是大写。
 如果方法返回一个成员变量的值,方法名一般为get+成员变量名,如若返回的值是bool变量,一般以is作为前缀。
 如果方法修改一个成员变量的值,方法名一般为:set + 成员变量名。
getName();
setName();
isFirst();
变量  第一个字母小写,中间单词的第一个字母大写。
 不要用_或&作为第一个字母。
 尽量使用短而且具有意义的单词。
 单字符的变量名一般只用于生命期非常短暂的变量。i,j,k,m,n一般用于integers;c,d,e一般用于characters。
 如果变量是集合,则变量名应用复数。
 命名组件采用匈牙利命名法,所有前缀均应遵循同一个组件名称缩写列表。 String myName;

int[] students;
int i;
int n;
char c;

btNew;
(bt是Button的缩写)
常量  所有常量名均全部大写,单词间以‘_’隔开。 int MAX_NUM;

3.2 其它
开发人员如果遇到上述表格中未列举的类型,请书面通知相关管理人员,由管理人员集中更新列表内容,不得擅自启用未经确定的新变量前缀。
4. 使用常量
4.1 使用常量
1. 常数很容易在数据输入时出错
常数存在的主要问题之一是你很容易在键入数字时出错,从而颠倒了数字的位置。例如,当你键入数字10876时,很容易的键入10867或18076。与处理变量和保留字的方法不同,编译器并不在乎颠倒了位置和不正确的数字,有时简单的错误造成的问题不会立即表现出来,而当问题表现出来时,它们会以随机的计算错误的形式出现,这些错误很难准确定位。用常量来取代常数时,编译器将在编译时检查常量的有效性。如果常量不存在,编译器便将这一情况通知你,并拒绝进行编译,这可以消除错误键入的数字带来的问题,只要常量拥有正确的值,使用该常量的所有代码也有使用该正确值。

2. 常数很难不断更新

3. 常量使代码更容易阅读
使用常量后,得到的一个额外好处是可使创建的代码更容易阅读。常数很不直观。也许你对常数非常了解,但其他人则根本看不明白。通过合理的给常量命名,使用这些常量的代码就变得比较直观了,更容易阅读。
为常量赋予较宽的作用域,这与使用变量时的情况不同。在一个应用程序中你决不应该两次创建相同的常量。如果你发现自己复制了一个常量,请将原始的常量说明转至较宽的作用域,直到该常量可供引用它的所有方法为止。

5. 变量
5.1 定义有焦点的变量
用于多个目的的变量称为无焦点(多焦点)的变量。无焦点变量所代表的意义与程序的执行流程有关,当程序处于不同位置时,它所表示的意义是不固定的,这样就给程序的可读性和可维护性带来了麻烦。

5.2 只对常用变量名和长变量名进行缩写
如果需要对变量名进行缩写时,一定要注意整个代码中缩写规则的一致性。例如,如果在代码的某些区域中使用Cnt,而在另一些区域中又使用Count,就会给代码增加不必要的复杂性。
变量名中尽量不要出现缩写。

5.3 使用统一的量词
通过在结尾处放置一个量词,就可创建更加统一的变量,它们更容易理解,也更容易搜索。例如,请使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。
量词列表:
量词后缀 说明
First 一组变量中的第一个
Last 一组变量中的最后一个
Next 一组变量中的下一个变量
Prev 一组变量中的上一个
Cur 一组变量中的当前变量
5.4 使用肯定形式的布尔变量
给布尔变量命名时,始终都要使用变量的肯定形式,以减少其它开发人员在理解布尔变量所代表的意义时的难度。

5.5 为每个变量选择最佳的数据类型
这样即能减少对内存的需求量,加快代码的执行速度,又会降低出错的可能性。用于变量的数据类型可能会影响该变量进行计算所产生的结果。在这种情况下,编译器不会产生运行期错误,它只是迫使该值符合数据类型的要求。这类问题极难查找。

5.6 尽量缩小变量的作用域
如果变量的作用域大于它应有的范围,变量可继续存在,并且在不再需要该变量后的很长时间内仍然占用资源。
它们的主要问题是,任何类中的任何方法都能对它们进行修改,并且很难跟踪究竟是何处进行修改的。
占用资源是作用域涉及的一个重要问题。对变量来说,尽量缩小作用域将会对应用程序的可靠性产生巨大的影响。

8. 表达式和语句
8.1 每行应该只有一条语句。
8.2 if-else,if-elseif语句,任何情况下,都应该有“{”,“}”,格式如下:
if (condition) {
statements;
} else if (condition) {
statements;
} else{
statements;
}
8.3 for语句格式如下:
for (initialization; condition; update) {
statements;
}
如果语句为空:
for (initialization; condition; update) ;
8.4 while语句格式如下:
while (condition) {
statements;
}
如果语句为空:
while (condition);
8.5 do-while语句格式如下:
do {
statements;
} while (condition);
8.6 switch语句,每个switch里都应包含default子语句,格式如下:
switch (condition) {
case ABC:
statements;
/* falls through */
case DEF:
statements;
break;
case XYZ:
statements;
break;
default:
statements;
break;
}
8.7 try-catch语句格式如下:
try {
statements;
} catch (ExceptionClass e) {
statements;
} finally {
statements;
}

11. 可移植性
1. 尽量不要使用已经被标为不赞成使用的类或方法。
2. 如果需要换行的话,尽量用 println 来代替在字符串中使用"\n"。
3. 用separator()方法代替路径中的”/”或”\” 。
4. 用pathSeptarator()方法代替路径中的 ” : ” 或 ” ;” 。

㈥ 怎么样让c++编译器 不区分大小写字母

原来在Unix下文件名符号名什么的都是区分大小写的。C是服务于Unix的工具,自然也是区分大小写。后来出现了一个奇葩就是微软的Dos,处处和Unix对着干。文件名不区分大小写,Unix常用的路径分割符正斜杠也变成了反斜杠... 当然后来的Windows以及微软的VB都遵循这个哲学。

那么当我们使用C和C++时就要回到Unix的哲学上来了。必须要大小写敏感。
不过你实在不爽的话,也可以自己修改编译器。gcc是开源的,可以任意修改。

㈦ 汇编语言是否区分大小写

汇编语言的语句是不区分大小写的,编译软件会自动识别这些语句,但是汇编程序中用户定义的变量、标号等,将区分其大小写,编程时要注意这些区别,以免出错。比如:
ORG 0000H
Ljmp main
org 0030h
main:
mov TMOD,#01h

setb EA

...............
这是合法的,不会出错,编译器也能正确识别。

㈧ 关于编译器识别文件后缀名的问题

是这样
对.c文件采用C语法编译,对.cpp文件采用C++的语法规则来编译。

阅读全文

与编译器识别文件名大小写相关的资料

热点内容
卡尔曼滤波算法书籍 浏览:768
安卓手机怎么用爱思助手传文件进苹果手机上 浏览:843
安卓怎么下载60秒生存 浏览:802
外向式文件夹 浏览:235
dospdf 浏览:430
怎么修改腾讯云服务器ip 浏览:387
pdftoeps 浏览:493
为什么鸿蒙那么像安卓 浏览:735
安卓手机怎么拍自媒体视频 浏览:185
单片机各个中断的初始化 浏览:723
python怎么集合元素 浏览:480
python逐条解读 浏览:832
基于单片机的湿度控制 浏览:498
ios如何使用安卓的帐号 浏览:882
程序员公园采访 浏览:811
程序员实战教程要多长时间 浏览:974
企业数据加密技巧 浏览:134
租云服务器开发 浏览:813
程序员告白妈妈不同意 浏览:335
攻城掠地怎么查看服务器 浏览:600