C语言中的每条可执行语句和非可执行语句最终都是将是背转换成二进制的机器指令为什么是错的

 我来答
八哥说科技
高粉答主

2019-09-18 · 分享科技资讯,共享科技生活
八哥说科技
采纳数:117 获赞数:78638

向TA提问 私信TA
展开全部

诸如括号、注释等非可执行语句并不会转化为机器指令,所以是错的。

所谓的可执行语句是:可以通过编译产生对应的汇编代码和机器码的语句。像赋值、逻辑运算、算术运算、分支、循环等,都可以转化成相应的汇编代码,都是可执行语句。比如:括号、预处理语句(行首是#的如#include)、注释等等不会转化成指令代码。

例如:程序编译时,不对注释内容作任何处理。注释一般可出现在程序中的任何位置。注释用来向用户或程序员提示或解释程序的功能作用。

扩展资料:

编译对非可执行语句的相关处理:

预处理器(preprocessor )可以删除注释、包含其他文件以及执行宏(宏macro是一段重复文字的简短描写)替代。预处理器可由语言(如 C )要求或以后作为提供额外功能(诸如为FORTRAN提供Ratfor预处理器)的附加软件。

一个C赋值语句的抽象语法树的例子:请注意,在语法树中,许多节点(包括记号节点在内)已经消失。例如,如果知道表达式是一个下标运算,则不再需要用括号“[”和“]”来表示该操作是在原始输入中。

参考资料来源:百度百科-执行语句

参考资料来源:百度百科-注释

参考资料来源:百度百科-编译原理

电子数码小百科NW
2020-02-14 · TA获得超过6497个赞
知道答主
回答量:15
采纳率:0%
帮助的人:4443
展开全部

诸如括号、注释等非可执行语句并不会转化为机器指令,所以是错的。解决方法如下:

1、首先,编写For循环第一句。

2、不过要记得用分号隔开。

3、另外,所用到的循环变量记得定义。

4、此外,要明确第二个表达式是判断作用的。

5、如果是多条语句,记得添加花括号。

6、此处是更改循环变量的值。就完成了。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风雷九州
推荐于2017-09-18 · TA获得超过3026个赞
知道大有可为答主
回答量:1127
采纳率:100%
帮助的人:462万
展开全部

要搞清这个问题,先用弄清楚什么是可执行语句,什么是非可执行语句。


举个例子:

int main()
{
    int a=1;
    
    a=3;
    
    return 0;
}

上面的代码中,定义函数int main()和两个{都是非可执行语句。而定义变量a以及给a赋值为3都是可执行语句。


真正的机器指令只有可执行语句。而函数的定义和分割函数的{都不会变成机器指令。因为执行到return 0之后,程序已经结束,这些非可执行语句只是为了告诉C语言编译器如果分割程序而已,并不是实际的语句,真正的机器指令是用不到的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yesyes科
2020-02-25 · TA获得超过2.6万个赞
知道答主
回答量:608
采纳率:0%
帮助的人:11.9万
展开全部

1、首先打开vc6.0, 新建一个项目。

2、然后添加头文件。

3、添加main主函数。

4、定义一个两个数相加的函数binSubtracton。

5、在main函数定义int了性number1,number2, binSub。

6、使用scanf给变量赋值。

7、调用binAddition、binSubtracton。

8、运行程序,看看结果就完成了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-14
展开全部
可能发生冲突吧。。或者你堆栈调用有问题的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式