存放的地方-C语言3目表达式的运算结果是放在寄存器的吗?那其他的表达式的结果呢?

问题描述

C语言3目表达式的运算结果是放在寄存器的吗?那其他的表达式的结果呢?

C语言3目表达式的运算结果是放在寄存器的吗?那其他的表达式的结果呢?

解决方案

运算结果放在哪里是编译器决定的,而不是编程语言决定的。没有规定?:运算表达式的结果一定放在寄存器

解决方案二:

举例;
int i = true ? 1 : 2;
因为这是一个常量表达式,因此编译器直接得到int i = 1;
根本就不会产生判断的代码,也不用到什么寄存器。

时间: 2024-09-16 02:17:09

存放的地方-C语言3目表达式的运算结果是放在寄存器的吗?那其他的表达式的结果呢?的相关文章

c++-如何把union组里的后缀表达式执行运算

问题描述 如何把union组里的后缀表达式执行运算 现在有一个后缀表达式,是存储在union组中的,该组含有double类型 的操作数 和char类型的运算符,如何运算?还是没法实现? 解决方案 要看你现有的代码.union里面怎么定义的.实现肯定是可以实现,你可以将其中的double char拿出来,还是一样的运算. 解决方案二: 你用什么数据类型就用什么运算了.

《Java语言导学(原书第6版)》一3.3 表达式、语句和块

3.3 表达式.语句和块 掌握变量和运算符后,我们学习表达式.语句和块(代码块)等要素.运算符用于构建表达式,进行运算.表达式是语句的核心组件,语句归在一起形成块. 3.3.1 表达式 表达式是由变量.运算符和方法调用(根据语法构建)等组成的构造,且表达式的计算结果为单个值.下面例子中黑体部分为表达式: 表达式的返回值类型取决于表达式中的元素.表达式cadence=0返回值的类型为int.因为赋值运算符返回值的数据类型与左边运算对象的数据类型一样,在这个例子中,cadence的数据类型为int.

《Java语言导学(原书第6版)》一一3.3 表达式、语句和块

3.3 表达式.语句和块 掌握变量和运算符后,我们学习表达式.语句和块(代码块)等要素.运算符用于构建表达式,进行运算.表达式是语句的核心组件,语句归在一起形成块.3.3.1 表达式 表达式是由变量.运算符和方法调用(根据语法构建)等组成的构造,且表达式的计算结果为单个值.下面例子中黑体部分为表达式: 表达式的返回值类型取决于表达式中的元素.表达式cadence=0返回值的类型为int.因为赋值运算符返回值的数据类型与左边运算对象的数据类型一样,在这个例子中,cadence的数据类型为int.如

《迷人的8051单片机》----第3章 入门C语言 3.1数据和运算

第3章 入门C语言 单片机是一种可编程的器件,我们需要将程序预先编写好,并保存到单片机的存储器中,单片机才能按照预先的设定执行程序.在给单片机开发应用程序时,使用C语言编写代码已经是一种趋势,C语言博大精深,学精不易,但入门却十分简单,本章将带领你用最便捷的方式快速学习C语言,并且在短时间内学会编写C应用程序. 3.1 数据和运算 3.1.1 C语言的由来 语言是编写程序时人与单片机之间的交流方式,最初人们使用机器码(0与1组合)来给单片机编写程序,后来开始使用汇编语言来编写程序,汇编语言和单片

C语言综合实验2—长整数运算

1.实验题目:长整型数运算,C中的long int所能表示的数据范围有限,现要求编程完成超过long int所能表示的数据范围以上的十进制正的长整数的加法和乘法运算. 2.实验提示:两个参与运算的长整数可用char a[256], b[256]表示,整个程序中要求完成以下几个函数的编写:1) int readlongint(char * x); 此函数用于读入一个正的长整数到x中,函数返回长整数的实际长度:要求输入时检查所读入的字符串是否是合法的长整数,如不是提示用户直到输入合法的长整数为止:2

c语言-n+=m++的运算顺序是什么?

问题描述 n+=m++的运算顺序是什么? 如题目啦 n+=m++的运算顺序是什么?不是++优先级高点吗? 解决方案 以上语句等价于 n += m; m ++; 如果是n += ++m;的话,则等价于 m ++; n += m; 解决方案二: 先解释一下 += 和 ++ 是什么意思: += 的意思是 左值和右值相加结果赋值给左值,如 a=1;b=2;a+=b;后,等效于a=a+b ,结果a=3;b=2. ++ 的意思是变量自加1,如a=1;a++;a的值是2, 在c中,++有前置和后置如 ++a;

C语言ASM汇编内嵌语法【转】

转自:http://www.cnblogs.com/latifrons/archive/2009/09/17/1568198.html GCC 支持在C/C++代码中嵌入汇编代码,这些汇编代码被称作GCC Inline ASM--GCC内联汇编.这是一个非常有用的功能,有利于我们将一些C/C++语法无法表达的指令直接潜入C/C++代码中,另外也允许我们直接写 C/C++代码中使用汇编编写简洁高效的代码. 1.基本内联汇编 GCC中基本的内联汇编非常易懂,我们先来看两个简单的例子: __asm__

有关逗号表达式

逗号表达式本身不难,常常与赋值运算符一起考,考查学生对这两个知识点的理解和考生观察是否细心.如下题: 题目:以下程序的输出结果是: main() { int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z); } 解析:[A]2,3,3 [B]2,3,2 [C]2,3,1 [D]1,1,1 x和y的值经过自增以后分别为2和3,D可以排除.剩下3个选项选择什么呢? 如果是(x++,y++,++y)实际上可以看成(1,1,3)整

VB6.0语言中关于布尔表达式转换成字符串的问题

问题描述 VB6.0语言中关于布尔表达式转换成字符串的问题 VB6.0语言数据库里存储的布尔表达式怎么以结果的形式拿到值,或者字符串转换为表达式的运算 解决方案 你可以用scripthost去执行你的表达式,得到结果