标题:变量的命名规则问题
只看楼主
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
结帖率:96.08%
已结贴  问题点数:10 回复次数:27 
变量的命名规则问题
以两个下划线或下划线和大写字母打头的名称被保留给实现(编译器及其使用的资源)使用。以一个下划线开头的名称被保留给实现,用作全局标识符。

像_time_stop 或Donut这样的名称不会导致编译器错误,而会导致行为的不确定性。

我是第一次在书上看到上面这段话,下了我一跳。

朋友们,在写代码的时候,你们也是知道这一点而尽量避免使用这样 的变量名吗?

你们之前碰到过因为这种原因而造成的所得非所需的现象吗?

能给个例子吗?举个例子说这种坏习惯会造成什么不开预知的后果?

搜索更多相关主题的帖子: 编译器 下划线 朋友 命名 资源 
2013-08-05 15:07
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
如果是保留字  关键字  编译器会给出提示的

DO IT YOURSELF !
2013-08-05 15:09
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
得分:0 
保留字到底是什么意思?

我一直没有搞明白。比如说:

CHAR_BIT

这样的是保留字吗?


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-08-05 15:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:2 
这是一种约定,否则冲突了算谁的?
2013-08-05 15:15
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:8 
这东西问度娘就可以了
程序代码:
保留字(reserved word) 保留字又称关键字。 

指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用。
每种程序设计语言都规定了自己的一套保留字。
例如:BASIC语言规定不能使用LIST作为变量名或过程名,因为LIST是一个BASIC语言专用于显示内存程序的命令。
C有22+10 = 32个关键字
C++ 有22+10+11+20 = 63 个关键字
JAVA 有22+ 9+ 17 = 48 个关键字
c语言保留字
auto :声明自动变量
double :声明双精度变量或函数
int: 声明整型变量或函数
struct:声明结构体变量或函数
break:跳出当前循环
else :条件语句否定分支(与 if 连用)
long :声明长整型变量或函数
switch :用于开关语句
case:开关语句分支
enum :声明枚举类型
register:声明寄存器变量
typedef:用以给数据类型取别名
char :声明字符型变量或函数
extern:声明变量是在其他文件正声明
return :子程序返回语句(可以带参数,也可不带参数)
union:声明共用数据类型
const :声明只读变量
float:声明浮点型变量或函数
short :声明短整型变量或函数
unsigned:声明无符号类型变量或函数
continue:结束当前循环,开始下一轮循环
for:一种循环语句
signed:声明有符号类型变量或函数
void :声明函数无返回值或无参数,声明无类型指针
default:开关语句中的“其他”分支
goto:无条件跳转语句
sizeof:计算数据类型长度
volatile:说明变量在程序执行中可被隐含地改变
do :循环语句的循环体
while :循环语句的循环条件
static :声明静态变量
if:条件语句




[ 本帖最后由 wp231957 于 2013-8-5 15:19 编辑 ]

DO IT YOURSELF !
2013-08-05 15:18
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
得分:0 
之前只是不使用自己知道那些保留字和关键字

从来没有在变量的命名上遵守上面说的那种规则

直接下划线开头的变量也没有故意避免。。。

虽然我喜欢匈牙利命名法。。

不过今天看到这段话

还是着实的吓了一下子。

如果我不甚写错了也会报错的是吧。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-08-05 15:21
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
得分:0 
哇喔,谢谢5楼,

不过好像不是像书上写的那样哎,

什么下划线开头什么的

百度到的那些我还是比较熟悉的

除了偶尔在报错的时候看见过那种下划线开头,大写字母比较多的东西

之外,没怎么见过书上说的这样的东西哎。。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-08-05 15:24
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
当我们把*.c 转变成*.obj 再转变成*.exe时
完全的没有了什么数据类型 没有了int char 啥的 也没有了变量类型  什么指针 啊 数组啊  啥都没有了
也没人检测你是不是匈牙利命名 变量前是否有下划线啥的

所以,我认为 只要编译器认为你的语法是合格的  可以编译链接成exe的  那就没问题的

DO IT YOURSELF !
2013-08-05 15:25
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
得分:0 
嗯,但愿它别给我搞出个什么名堂。。。

万一感觉一切合情合理,

结果编译出的.exe

就是不是自己想要的功能

那就有意思了。。。

就像有些人到后来都是习惯性的先检查内存泄露问题一样

我感觉自己很有必要经常提醒自己这方面的隐含问题

隐蔽性太强。。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-08-05 15:41
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
管他黑猫白猫  抓住耗子才算好猫

DO IT YOURSELF !
2013-08-05 15:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-418649-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.703378 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved