指令:我们把预处理器执行的命令称为指令。所有指令都是以字符#开始的。指令默认只占一行,每条指令的结尾没有分号或者其它特殊标记。
一个C程序可以包含多个函数,但是只有main()函数是必须有的,在执行程序时系统会自动调用main()函数。
return 0;的作用:
注意:如果main()函数的末尾没有return语句,程序仍然能终止。但是许多编译器会产生一条警告信息(因为函数应该返回一个整数却没有这么做)。
当我们把一个包含小数点的常量赋值给float型变量时,最好在常量后面加一个字符f(代表float)。
某些编译器把特定的标识符(如asm)视为附加关键字。属于标准库的标识符也是受限的。误用这些名字可能会导致编译或链接出错。以下划线开头的标识符也是受限的。
答:当出现在main()函数中使,这两种语句使完全等价的,二者都终止程序执行,并且向操作系统返回0值。使用哪种语句完全依据个人喜好而定。
答:return语句不是必须的;如果没有return语句,程序一样会终止。在C89中,返回给操作系统的值是未定义的。在C99中,如果main()函数声明中的返回类型是int,程序会向操作系统返回0;否则会返回一个不确定的值。
答:一些早期的编译器会删除每条注释中的所有字段,使得语句
a/**/b = 0;
理解成
ab = 0;
然而,依据C标准,编译器必须用一个空格字符替换每条注释语句,因此上面提到的技巧并不可行。
我们实际上会得到下面的语句:
a b = 0;
答:是,又不是。C89标准声明标识符可以任意长,但却值要求编译器记住前31个字符(C99中是63个字符)。因此,如果两个名字的前31个字符都相同,编译器可能无法区别它们。
更复杂的情况是,C标准对于外部链接的标识符又特殊的规定,而大多数函数名都是这类标识符。因为链接器必须能识别这些名字,而一些早期的链接器又只能处理短名字,所以在C99中只有前6个字符才是有效的。此外,还不区分字母的大小写。因此ABCDEFG和abcdefg可能被作为相同的名字处理。(C99中,前31个字符有效,且字母区分大小写。)
大多数编译器和链接器都比标准所要求的宽松,所以实际使用中这些规则都不是问题,不要担心标识符太长,还是不要把它们定义的太短吧。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/m0_57304511/article/details/122946450
内容来源于网络,如有侵权,请联系作者删除!