C++,C语言用户自定义标识符,有哪些限制?

关于普通地intsbhe2b=38,charcha=x等等这些普通地就不用说了;例题:下列标识符中,不合法的C语言用户自定义标识符是()。A:printfB:enumC:... 关于普通地int sbhe2b=38,char cha=x等等这些普通地就不用说了;
例题:
下列标识符中,不合法的C语言用户自定义标识符是()。
A:printf
B:enum
C:_
D:sin
选择B。
但是这样写还是感觉有些怪怪的,能解释一下么:
int printf=1, _=2, sin=3.1415926535897932384626;
展开
 我来答
chenfenggang99
2014-05-16 · TA获得超过1850个赞
知道大有可为答主
回答量:1746
采纳率:75%
帮助的人:1751万
展开全部
int printf=1, _=2, sin=3.1415926535897932384626;

这些感觉怪异,并不是你的问题。。因为 printf 这个函数太常见了。
sin 也是一个函数名
_ 这个你没有实际意义,很少用而已

总之,你觉得怪的,不一定不正确 。。感觉怪只是我们会去少用而已。。。
追问
主要是平常用的函数名也是可以用来当自己定义的变量名称么?
要是包含了math.h文件,
我这样定义:int sin;也没问题?
还有这些也没有问题么:
int int=1;
int float=1;
int %=1;
int "=1;
int stdio=1;
int stdio.h=1;
int =1;
int =1;
int 整数=1;
int ==1;
追答
命名只能 是 数字,_ 与字母组合。。。。不能是关键字

数字不能放在开头,所以上面很多都是错误的 ,
int int=1; //关键字错误
int float=1; //关键字错误
int %=1; //非数字,_ 与字母组合。下面好多 。
int "=1;
int stdio=1; 这个是正确的。。其余都是错误的 。。
int stdio.h=1;
int =1;
int =1;
int 整数=1;
int ==1;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjfaok
2014-05-16 · TA获得超过6807个赞
知道大有可为答主
回答量:4146
采纳率:62%
帮助的人:1629万
展开全部
只是因为enum是关键字而已……

int printf=1;这样确实很怪,所以是不建议使用的,但不代表不能使用。
追问
主要是平常用的函数名也是可以用来当自己定义的变量名称么?
要是包含了math.h文件,
我这样定义:int sin;也没问题?
还有这些也没有问题么:
int int=1;
int float=1;
int %=1;
int "=1;
int stdio=1;
int stdio.h=1;
int =1;
int =1;
int 整数=1;
int ==1;
追答

因为这些函数名是定义在全局的,所以作为局部变量的名字是不会冲突的。只是真的这么做的话,就不能使用这些函数了。


int 整数=1;

实际上有些编译器是支持的,不过不完全可移植。

int、float不允许作为变量名的原因跟enum一样。%*"<>=之类的符号也不能作为变量名。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
堵寄灵kO
2014-05-16 · TA获得超过2370个赞
知道小有建树答主
回答量:588
采纳率:100%
帮助的人:473万
展开全部
不能和C++,C关键字同名,不能违反命名规范
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-05-16
展开全部
_一个字符作为符号看着不舒服很自然sin有点像三角函数当然也不舒服啊
追问
但这些真的没问题么?
比如说我写个程序:
#include
void main(void)
{
float printf=1, _=2, ⊙▽⊙=3, sin=3.14;

printf("%f,%f,%f,%f\n",printf,_,⊙▽⊙,sin);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式