
C语言中的每条可执行语句和非可执行语句最终都是将是背转换成二进制的机器指令为什么是错的
诸如括号、注释等非可执行语句并不会转化为机器指令,所以是错的。
所谓的可执行语句是:可以通过编译产生对应的汇编代码和机器码的语句。像赋值、逻辑运算、算术运算、分支、循环等,都可以转化成相应的汇编代码,都是可执行语句。比如:括号、预处理语句(行首是#的如#include)、注释等等不会转化成指令代码。
例如:程序编译时,不对注释内容作任何处理。注释一般可出现在程序中的任何位置。注释用来向用户或程序员提示或解释程序的功能作用。
扩展资料:
编译对非可执行语句的相关处理:
预处理器(preprocessor )可以删除注释、包含其他文件以及执行宏(宏macro是一段重复文字的简短描写)替代。预处理器可由语言(如 C )要求或以后作为提供额外功能(诸如为FORTRAN提供Ratfor预处理器)的附加软件。
一个C赋值语句的抽象语法树的例子:请注意,在语法树中,许多节点(包括记号节点在内)已经消失。例如,如果知道表达式是一个下标运算,则不再需要用括号“[”和“]”来表示该操作是在原始输入中。
参考资料来源:百度百科-执行语句
参考资料来源:百度百科-注释
参考资料来源:百度百科-编译原理
诸如括号、注释等非可执行语句并不会转化为机器指令,所以是错的。解决方法如下:
1、首先,编写For循环第一句。
2、不过要记得用分号隔开。
3、另外,所用到的循环变量记得定义。
4、此外,要明确第二个表达式是判断作用的。
5、如果是多条语句,记得添加花括号。
6、此处是更改循环变量的值。就完成了。

要搞清这个问题,先用弄清楚什么是可执行语句,什么是非可执行语句。
举个例子:
int main()
{
int a=1;
a=3;
return 0;
}
上面的代码中,定义函数int main()和两个{都是非可执行语句。而定义变量a以及给a赋值为3都是可执行语句。
真正的机器指令只有可执行语句。而函数的定义和分割函数的{都不会变成机器指令。因为执行到return 0之后,程序已经结束,这些非可执行语句只是为了告诉C语言编译器如果分割程序而已,并不是实际的语句,真正的机器指令是用不到的。
2013-07-14