2.4  C语言的类型系统

    这一节,我们准备初步讨论一下C语言的类型系统,相关的代码主要在ucl\type.c和ucl\type.h中。我们知道,一个进程的地址空间可分为代码区和数据区。

    对于数据区,C语言提供了char、short、int、long、float和double等基本类型来刻画基本的操作数。char、short、int和long等整型还进一步分有unsigned和signed,对大多数编译器而言,缺省时,整型默认为signed。当然也有C编译器默认char为unsigned char。C标准对基本类型要占多大内存空间,并没有规定得非常死。比如,在一些面向16位单片机的C编译器中,int就只占2个字节;而在32位机器上,int一般占4个字节。这些基本类型,就如最基本的化学元素一样,按照一定的组合规则,就可以构成更复杂的物质,最终构成了纷繁的大千世界。在C语言中,指针、数组和结构体等概念,就相当于是化学元素的组合规则,通过这些概念,C程序员可以描述更加复杂的数据。

C语言通过引入“函数”的概念,刻画了代码区,对C程序员而言,要访问代码区的函数代码时,我们需要知道这段代码的首地址、函数参数和返回值这样的信息,函数名实际上就代表了这段代码的首地址,这些信息可用C语言的函数声明来表达,如下所示。

         int f(int,int);

         int g(int,int);

    如果忽略掉函数名,则函数f和函数g拥用相同的特征,同样的参数类型和同样的返回值类型。我们可以说函数f和函数g的类型是一样的。把“指针”这样的组合规则作用到“函数”上,我们就有了“函数指针 pointer to function”的概念,由此,我们可以把函数的首地址也当作一种数据来处理;而函数的参数和返回值,实际上表达了代码区要如何访问数据区。因为整数和浮点数等基本类型相当于基本的化学元素,而指针、结构体、数组和函数等组合规则是在这些基本类型之上衍生出来的,所以我们称这些类型为衍生类型(derivedtype)。如果把基本类型看成是操作数,把这些组合规则看成是类型运算符,则C程序员通过函数或变量的声明,实际上构建了类型表达式,来告诉C编译器我们要如何访问代码区和数据区。

    在UCC编译器内部,我们需要建立相应的数据结构来刻画基本类型和衍生类型。UCC编译器是用C语言来实现的,很自然的,我们就会用结构体来描述相关类型信息。图2.4.1中的代码来源于ucl\type.h,为了表述方便,删去了原有的一些注释。


图2.4.1  struct type

    我们通过图2.4.1第17行的struct type来描述类型信息,而数组类型需要记录更多的信息,我们就用第22行的struct arrayType。可以看到,这两种结构体的开始部分都是TYPE_COMMON,我们在第1章时介绍过,这相当于struct arrayType继承了struct type。而宏定义TYPE_COMMON如图第10至15行所示,第11行的categ用来记录类别,取值范围由第2至第6行的枚举常量来定义。例如CHAR对应的是char,而UCHAR对应的是unsignedchar。第12行的qual用来记录类型声明时,是否有添加const或volatile等限定符(qualifier),其取值范围由第8行的枚举常量CONST和VOLATILE来指示。第12行的align表示是按多少字节进行对齐的,而第13行的size则记录该类型要占多少个字节。如果是衍生类型,第15行的bty用于指向其基类。

    我们举以下几个具体的例子来说明。通过ucl\type.c中的函数ArrayOf()、PointerTo()和Qualify(),我们可以在基本类型int的基础上构造如图2.4.2所示的类型结构。结合图2.4.2,不难理解这几个函数的源代码,这里就不展开讨论。

         int a;

         const int b;

         int c[4];

         int * d;


图2.4.2             类型结构

    由图2.4.2,我们可以知道数组c的类型由4个int构成,共占16字节,按4字节进行对齐,属于ARRAY类别;而指针d属于POINTER类别,占4字节。接下来我们再来看一下如何描述结构体类别,如图2.4.3所示。


图2.4.3   结构体的类型描述

    我们仍然结合一个例子来说明。通过ucl\type.c的StartRecord()、AddField()和EndRecord()等函数,我们会为以下结构体struct Data构造一个形如图2.4.4的类型结构。

struct Data{

         int abc:8;

         int def:24;

         double f;

} dt;

 

图2.4.4   结构体的类型结构

    在图2.4.4中,recordType中记录了结构体struct Data类型的大小为16字节,其类别为STRUCT,按8字节进行对齐,其中的flds指针指向由struct field对象构成的链表。每个struct field对象描述了结构体中的一个数据域成员,tail指针相当于指向链尾的struct field对象。对于位域成员,在struct field的bits记录了其所占用的位数,UCC使用一个int或者unsignedint来存放位域成员,而pos则记录了位域在一个整数中的起始位置。例如,在结构体struct Data中,成员abc和def都是位域,abc占8个bit,而def占24个bit,它们一共占了32位的空间,即4字节。UCC编译器为struct Data对象dt构造的内存布局如图2.4.5所示。由于在UCC对double类型按8字节进行对齐,所以在偏移offset为4开始的4个字节实际上没有放置任何数据。位域abc和def都处于偏移0字节处,但它们的pos信息是不一样的;而双精度浮点数f位于偏移8字节处,占用了8字节的内存空间。整个dt对象共占16字节。不同C编译器采取的对齐策略是不一样的,所产生的对象内存布局会有所不同。


图2.4.5 struct Data对象dt的内存布局

    接下来,我们来看一下UCC的类型系统是如何描述“函数”的,如图2.4.6所示。


图2.4.6 函数的类型描述

    图2.4.6的第159行的functionType描述了与函数相关的类型信息,TYPE_COMMON中的bty记录了函数返回值的类型信息,而第162行的sig则记录了参数列表的类型信息。C语言函数分为旧式风格old-style或者新式风格new-style,如图2.4.7所示的f1和f2实际上就是旧式风格;而f3和f4为对应的新式风格函数。由图2.4.7的第17至22行可知,旧式风格的函数甚至连实参的个数都不进行检查;由第23至28行可知,新式风格的函数会对参数进行检查,这也是图2.4.6第154行的hasProto的含义,hasProto是”hasprototype”的意思,换言之,参数列表成为函数接口的一部分。作为C程序员,应尽量不去使用旧式风格的函数定义或声明,毕竟,因为历史上使用旧式风格的函数引起了不少问题,我们才会引入类型检查更严格的新式风格函数。但是作为C编译器,却需要背上这个历史的包袱,新旧风格都需要去支持。而图2.4.6第155行的hasEllipsis则用于判断新式风格的函数中是否存在变参,ellipsis是省略号的意思,在C语言中printf就是一个最典型的变参函数,其函数接口如下所示。

int printf(const char *format, ...);


                                      图2.4.7   旧式风格和新式风格

    图2.4.8给出了图2.4.7的代码上机运行后的结果,我们给出了GCC、UCC和Clang三者的对比。Clang编译器给出的提示信息确实是最具可懂性的。在UCC编译器的警告和错误提示上,我们有时有意去模仿Clang或者GCC。


                                      图2.4.8  新旧风格函数运行结果

   接下来,我们就以如下所示的函数f5为例。通过ucl\type.c中的FunctionReturn()等函数,我们为之构造一个如图2.4.9所示的类型结构。

int f5(double a,float b);


                                     图2.4.9 函数的类型结构

    在图2.4.9中,结构体struct parameter描述了函数的某个参数的相关信息,id为形参的名字,ty为形参的类型,而reg表示形参声明时是否有register这样的说明符,该说明符只是建议C编译器把形参尽量放到寄存器中。而structsignature则描述了参数形表的相关信息,hasProto为1时,表示是新式风格的函数,此时params域指向一个向量,该向量包含多个structparameter对象。

    通过这一节的图2.4.2、图2.4.4和图2.4.9,我们对UCC编译器是如何刻画C语言的数组、结构体和函数等类型信息会有一个非常直观的感觉。UCC编译器会在语法分析和语义检查时进行这些类型结构的构建,我们会在后续章节再进行讨论。而int和double等基本类型的结构,在main()函数中调用SetupTypeSystem()函数来构建,如图2.4.10所示。第1259至1276行创建了所有的基本类型,指定了这些类型的大小size、对齐align和类别categ信息。第1281至1293创建了一个形如”intf();”的缺省函数类型DefaultFunctionType。


图2.4.10  SetupTypeSystem()

    在C语言中,如果一个函数未经声明就直接使用,则C编译器会把这个函数的类型视为DefaultFunctionType。第1290行告诉我们这个类型的函数是旧式风格的,不对函数参数进行任何的检查。我们举一个例子来说明这会引起多让人莫名其妙的问题。

    假设有两个C文件,一个文件名为b.c,其中定义了一个函数fadd,用于对两个float类型的浮点数进行加法运算;而另一个文件名为a.c,其中调用了fadd(3.0f,3.0f)。这个程序非常简单,只要学过几天C语言的人几乎都会预期这个程序的结果是6.0。

//a.c

#include <stdio.h>

int main(){

         fadd(3.0f,3.0f);        

         return 0;

}

//b.c

#include <stdio.h>

void fadd(float a,float b){

         float c;

         c = a+b;

         printf("%f\n",c);

}

    但上机运行后的结果竟然是2.125,这一定会让我们大吃一惊。如图2.4.11所示。再一次的,我们看到Clang至少给了我们一点警告提示,让我们知道原来a.c中对函数fadd是没有声明就直接使用。这就导致在编译单元a.c中,函数fadd沦为旧风格的函数。C编译器视fadd的类型为图2.4.10中的DefaultFunctionType。


图2.4.11 调用未声明的函数

    这就是噩梦的源头。只要在a.c中加上声明” void fadd(floata,float b);”后,再调用fadd()函数,我们就得到了想要的结果6.0。下面,我们就来分析一下,为什么旧式风格的函数会带到这么怪异的问题。为了说明方便,我们把上述程序稍微修改一下,适当加了一些输出语句,如图2.4.12所示。


图2.4.12 沦为oldstyle

    再次上机运行,我们会得到如图2.4.13所示结果。由图2.4.13,我们可知,float类型的浮点数3.0f在内存中对应的十六进制数值为0x40400000,而2.125f则对应0x40080000,这也正好吻合IEEE754的浮点数编码;double类型的3.0在内存中对应8个字节,内容为[ 0x00000000  0x40080000]。同时,我们发现,在b.c中,形参a的值竟然是0x00000000,形参b的值竟然是0x40080000,这就相当于是2.125f和0.0f相加,结果当然是2.125f。


图2.4.13 沦为oldstyle的运行结果

    在a.c中把fadd当作旧式风格的函数时,按IT大佬们的约定,C编译器会进行一个被称为实参提升的动作。如ucl\type.c中的Promote()函数所示,凡是低于int型的其他整型,包括char和short都会被提升为int,而单精度float则会被提升为double;其他类型保持不变。

Type Promote(Type ty){

         return ty->categ< INT ? T(INT) : (ty->categ == FLOAT ? T(DOUBLE) : ty);

}

    C编译器面对“未声明就使用”的函数调用”fadd(3.0f,3.0f);”时,默默地进行了实参提升的操作。真正执行的函数调用是”fadd(3.0,3.0);”,压入栈的是两个double类型的浮点数3.0,共占了16字节。如图2.4.14所示。在小端机器上,浮点数3.0的存放如图所示,在低地址4字节存放了0x00000000,在高地址的4字节中存放了0x40080000。在b.c的函数fadd()中,仍然是把形参a和b当作float来处理,按照C调用约定,参数向右向左入栈,所以形参a对应的是0x00000000,形参b对应的是0x40080000。


图2.4.14 栈示意图

    总之,远离旧式风格的C函数,同时记住,函数要先声明再使用,否则我们就不知不觉地在使用旧式风格的函数声明。上述例子阐述了旧式风格的函数所带来的噩梦。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 谁说国产编译器没救了?这个 C/C++ 和 JavaScript 编译器来了 | 程序人生 2020

    自述 | 杨晓兵编辑 | 伍杏玲出品 | CSDN(ID:CSDNnews)编者前记:编译器是连接人类世界与机器世界之间的一座桥梁,它可将程序员理解的高级语言,转换成程序高效执行的机器码。在 C/C++ 编译器里,有 VC、Borland C++、GCC、Watcom C/C++ 等国外热门编译器,但属于国内自主研…...

    2024/4/19 20:00:24
  2. 单元测试就是白盒测试吗?

    有一点,需要关注,单元测试是测试阶段.单元测试阶段.而白盒测试是测试方法.测试阶段的有:UT/IT/ST/BBIT/SDV/SIT/SVT/BETA.测试方法可分为三大类:白盒/灰盒/黑盒/当然,在我司,单元测试往往也是使用黑盒用例设计方法.白盒测试越来越少了! [url=http://www.sqaforums.…...

    2024/4/17 22:51:54
  3. 利用线程来处理java中进度条动态改…

    //继承JProgressBar类 import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.border.*; public class OAGProgressBar extends JProgressBar{int value =0;private int count = 0;private static long total = 100;boolean ischanged=true;…...

    2024/4/5 0:31:46
  4. 十六进制转十进制的C语言实现

    嘻嘻,用到了前几天学到的循环队列,认识到了数据结构的魅力。 将输入的数据入队后,再挨个出队,首先检查队列的前两个数据是否为‘0x’ 若是,再将其他数据出队,并且完成一系列操作。//———————————————————————— //十六进制转十进制(队列) #inc…...

    2024/4/12 9:50:12
  5. 自带编译器的codeblocks安装后无法找到编译器的解决方案

    自带编译器的Codeblocks安装后找不到解决方案@TOC 之前我按照这位博友的方法安装了不带编译器的codeblocks并为其配置了TDM-GCC编译环境,这位博友的方法如下: https://blog.csdn.net/ozwarld/article/details/49869957 随后,我拆卸了codeblocks和TDM-GCC,重新安装了自带编译…...

    2024/4/27 12:47:20
  6. JAVA自学之路 六:项目的自学

    [原创 - 尚学堂科技 - 马士兵老师] JAVA自学之路 六:项目的自学 [转载请注明出处:http://www.bjsxt.com/zixue/zixuezhilu_6.html]现在就业竞争的激烈程度已经远远高于当年了,记得我当年毕业时,一个会编程的毕业生站到台上,大声问道:“我会ASP,月薪5000有没有人要?” 台下…...

    2024/4/24 10:51:03
  7. Java中的Mongodb单元测试

    如何进行Mongodb测试? 我们在java中使用Mongodb作为数据库进行存储的时候,怎么样对于进行测试呢?一种可能直接的方式就是在setUp中getDB,然后在tearDown里面dropDatabase。这样的方式相对来说比较慢。一种更好的方式就是使用fake的数据库,比如embedded的Mongodb用于测试。…...

    2024/4/12 9:50:24
  8. java后端实现返回子线程进度条

    在一个项目有一个需求是这样的,在上传一个文件后,后台加载文件插入临时表,再重临时表中查出数据返回客户端,最后在进行一段比较费时的数据计算。在计算完成前整个页面都是锁住的,用户不能做任何操作,直到计算完成,需求希望的优化是,返回数据到客户端后就直接退出,页面…...

    2024/4/19 23:00:32
  9. 原创java自学教程总目录,你不看一下?

    近期正在连载一套真正适合小白学习的java自学教程,力求通俗易懂,详细完整,当然也不会缺少深度的,目前已经更新了一篇: 大家可以先试试味道 原创 | Java是什么?Java到底能干嘛? 另外,由于是针对小白入门的java自学教程,所以需要征集一些新手的意见,毕竟这是帮助小白学…...

    2024/4/26 5:06:50
  10. 关于《C语言深度剖析》之编译器的bug问题

    关于《C语言深度剖析》之编译器的bug问题编译器的bug?另外一个有意思的现象,在Visual C++ 6.0调试如下代码的时候却又发现一个古怪的问题:int *p = (int *)0x12ff7c;*p = NULL;p = NULL;在执行完第二条代码之后,发现p 的值变为0x00000000 了。按照我么上一节的解释,应该p的…...

    2024/4/28 7:05:27
  11. 超级(无限)大的 --- 整型10进制数据与16进制数据相互转换

    <html> <title>超级(无限)大的 --- 整型10进制数据与16进制数据相互转换</title> <head> <meta charset="utf-8"/> <meta name="keywords" content="数据压缩算法,超过整数表示范围的大数据算术运算,大进制数据互相…...

    2024/4/12 9:50:00
  12. 软件测试的四个阶段,单元测试、集成测试、系统测试、验收测试

    软件测试的对象包括软件需求、概要设计、详细设计、软件运行环境、可运行程序和软件源代码等。软件测试包括质量、人员、资源、技术和流程五大要素,以及测试覆盖率和测试效率两个目标。软件测试一般分为4个阶段:单元测试、集成测试、系统测试、验收测试。一、单元测试 单元测…...

    2024/4/26 21:10:16
  13. JAVA自学路线图

    JAVA自学路线图首先要学JavaSE,这是无庸置疑的。与此同时,是的,与此同时,和JavaSE的学习同步,建议大家研究一下数据结构与算法。在这儿之后,你可以选择向J2ME、或者Java GUI、Socket编程等方向努力,但是通过第一篇的办法,你可以很容易就将这方向过滤掉(永远不要忘了我…...

    2024/4/26 21:53:37
  14. java程序编写控制台输出进度条程序

    先上效果图:直接贴代码:public class Test {static int maxIndex = 50; //控制输出的进度条宽度public static void main(String[] args) {begin();}private static void begin(){StringBuffer kg = new StringBuffer();for(int i=0;i<maxIndex;i++){kg.append(" …...

    2024/4/23 23:12:57
  15. 历史上出现过的主流C/C++ 编译器都有哪些?

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。作者:farta fine链接:https://www.zhihu.com/question/39661628/answer/82559043来源:知乎Turbo C/C++DOS时代的启蒙先驱,上古神器。Visual C++M$出产的编译器系列。Windows下的事实兼容性标准。6.0版…...

    2024/4/12 9:49:49
  16. lua 十六进制与十进制相互转换

    --[[-- rgb转成16进制]]function converRGB2Hex(color) local str = "" --十进制转到十六进制 if string.len(string.sub(string.format("%#x",color.r),3)) == 1 then str = str.."0" .. string.sub(string.format("%#x&…...

    2024/4/19 8:36:05
  17. 我觉得应该这样写单元测试(java)

    每个人对待单元测试的态度各异,有些人觉得单元测试很重要,有些人觉得单元测试可以不写;我对单元测试的态度是肯定的。存在的问题进入新团队半年多了,感觉团队小伙伴对单元测试的写法及认知存在不合理的地方,比如很多单元测试就是调用一下方法,没有对数据进行构造,也没有…...

    2024/4/12 9:49:49
  18. 针对C 语言程序 编译器警告(C4996)的解决方案

    针对C 语言程序 编译器警告(C4996)的解决方案 错误 C4996 ‘scanf’: This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.*编译器遇到弃用声明。 此警告始终是有…...

    2024/4/20 13:52:28
  19. C#_在VS2010下进行单元测试

    在VS2010中,单元测试的功能很强大,使得建立单元测试和编写单元测试代码,以及管理和运行单元测试都变得简单起来,通过私有访问器可以对私有方法也能进行单元测试,并且支持数据驱动的单元测试。1、建立单元测试项目1.1、从被测试代码生成单元测试1)实例:创建VC#模式下的控…...

    2024/4/12 9:50:00
  20. Java自学教程汇总

    1.极客学院 点击打开链接 2.给jdk写注释系列之jdk1.6 点击打开链接 3.人人编程 点击打开链接 4.图标highcharts 点击打开链接...

    2024/4/16 22:02:28

最新文章

  1. 【CTF Reverse】XCTF GFSJ0492 insanity Writeup(反汇编+字符串搜索)

    insanity 菜鸡觉得前面的题目太难了&#xff0c;来个简单的缓一下 解法 拖进 Exeinfo PE 中分析。 -> Compiler : GCC: (Debian 4.4.7-2) 4.4.7用 IDA 打开。 按 shift F12 打开 String 页面。找到 flag。 Flag 9447{This_is_a_flag}声明 本博客上发布的所有关于网络攻…...

    2024/5/3 0:01:42
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. DevOps三步法之反馈:流动是油门,反馈是刹车

    打个比方&#xff0c;流动是油门&#xff0c;反馈是刹车。流动是关于行使&#xff0c;反馈是关于安全。车辆要想持续平稳运行&#xff0c;需要油门与刹车良好配合&#xff0c;否则就有可能车毁人亡。核电站需要使核反应处于临界状态&#xff0c;超出临界状态就是核爆炸这也需要…...

    2024/5/2 2:37:13
  4. [实战经验]Mybatis的mapper.xml参数#{para}与#{para, jdbcType=BIGINT}有什么区别?

    在MyBatis框架中&#xff0c;传入参数使用#{para}和#{para, jdbcTypeBIGINT}的有什么区别呢&#xff1f; #{para}&#xff1a;这种写法表示使用MyBatis自动推断参数类型&#xff0c;并根据参数的Java类型自动匹配数据库对应的类型。例如&#xff0c;如果参数para的Java类型是Lo…...

    2024/5/2 3:19:59
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/2 9:28:15
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57