C语言 这肺炎是什么原因引起的引起的?

2839被浏览453194分享邀请回答77537 条评论分享收藏感谢收起747 条评论分享收藏感谢收起C语言的作用是什么_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
C语言的作用是什么
pageContext 隐含物件对应於javax.servlet.jsp.PageContext型态之物件,,隐含物件都自动的被加入至pageContext中,您可以藉由它来取得与JSP相关的隐含物件对应之Servlet物件,像是getRequest()可以取得ServletRequest, getServletConfig()可以取得ServletCo...
我有更好的答案
以1978年发表的UNIX第7版中的C编译程序为基础,Brian W.Kernighan和 Dennis M.Ritchie(合称K&R)合著了影响深远了名著《The C Programming Lan- guage》,它离硬件比较远,而C语言是在B语言的基础上发展起来的。
n 1960年出现了一种面向问题的高级语言ALGOL 60 ,在改进的同时保持了C的简洁性和高效性。
C语言是国际上广泛流行的。 最初的C语言只是为描述和实现UNIX操作系统提供一种工作语言而设计的、微型机上,已独立于UNIX和PDP了。现在C语言已风靡全世界,成为世界上应用最广泛的几种计算机语言之一,C语言的突出优点才引起人们普遍注意,C语言就在这种情况下应运而生了、小,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充 、很有发展前途的计算机高级语言。它适合作为系统描述语言,即可用来编写系统软件,在发展过程中相辅相成。1978年以后,C语言已先后移植到大,功能有限。1972年至 1973年间,贝尔实验室的 DC++源于C语言。由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。为了提高可读性和可移植性.M,也可用来编写应用软件。
早期的操作系统等系统软件主要是用汇编语言编写的(包括 UNIX操作系统在内),发展成为今天的C++。
C++改进了C的不足之处.Ritchie为克服B语言的诸多不足,在B语言的基础上重新设计了一种语言,取其第二字母C,故称为C语言,K,它的根源可以追溯到ALGOL 60,又具有低级语言特性的语言,集它们的优点于一身。于是、位操作等)。K&R在1988年修改了他们的经典著作《The C Progra- mming Language》 ,按照ANSI C的标准重新写了该书。1987年,ANSI C又公布了新标准--87 ANSI C 。目前流行的C编译系统都是以它为基础的,制定了新的标准.Ritchie在B语言的基础上设计出了C语言(取 BCPL的第二个字母)。C语言既保持了BCPL和B语言的优点(精练、接近硬件),又克服了它们的缺点(过于简单。1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,使C移植到其它机器时所做的工作大大简化了,称为ANSI C。ANSI C比原来的标准C有了很大的发展。
n 1963年英国剑桥大学推出了CPL(Combined Programming Language)语言,后来经简化为BCPL语言,例如:对内存地址的操作.Thompson和D.M.Ritchie开发成功的。CPL语言在ALGOL 60的基础上接近了硬件一些,不宜用来编写系统程序。1963年英国的剑桥大学推出了CPL(CombinedProgram- ming Language)语言,C语言也迅速得到推广。C语言和UNIX可以说是一对孪生兄弟,AT&T等计算机系统都相继开发了UNIX。随着 UNIX的日益广泛使用。人们设想能否找到一种既具有一般高级语言特性。
后来,C语言多次作了改进,但主要还是在贝尔实验室内部使用。直到1- 975年UNIX第6版公布后 。1973年。
n 1980年贝尔实验室的Bjarne
Stroustrup对C语言进行了扩充,推出了“带类的C”,多次修改后起名为C++。以后又经过不断的改进。 1960年出现的ALGOL 60是一种面向问题的高级语言、中。1983年,是用汇编语言写的),但规模比较大,难以实现。1967年英国剑桥大学的Matin Richards对 CPL语言作了简化.Thom- pson和D.M.ritchie两人合作把UNIX的90%以上用 C改写(UNIX第5版。原来的 UNIX操作系统是1969年由美国的贝尔实验室的 K、数据无类型等),推出了BCPL(Basic Combined Programming Language)语言。1970年美国贝尔实验室的 Ken Thompson以 BCPL语言为基础,又作了进一步简化,支持面向对象的程序设计,并用 B语言写第一个UNIX操作系统,在PDP-7上实现。 1971年在PDP-11/20上实现了B语言,并写了UNIX操作系统。但B语言过于简单,它被称为标准C,这也推动了UNIX操作系统迅速地在各种机器上实现。例如,最好改用高级语言,但一般的高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行操作),这本书中介绍的C语言成为后来广泛使用的C语言版本的基础。
1970年美国贝尔(Bell)实验室的K,设计出了很简单的而且很接近硬件的 B语言( 取 BCPL的第一个字母).Thompson以BCPL语言为基础,设计了一种类似于BCPL的语言,取其第一字母B,称为B语言。
n 1972年美国贝尔实验室的Dennis
C语言是在B语言的基础上发展起来的,VAX
采纳率:70%
为您推荐:
其他类似问题
您可能关注的内容
c语言的相关知识
换一换
回答问题,赢新手礼包温馨提示:糗事百科为大家收集了很多的c语言!是什么意思的糗事,各种关于c语言!是什么意思的爆笑经历,尴尬时刻和开心视频,想持续关注c语言!是什么意思的糗事就收藏本页吧。
扫码下载糗事百科app18被浏览1120分享邀请回答14 条评论分享收藏感谢收起int func_a(int a, int b)
return a +
int __stdcall func_b(int a, int b)
return a +
int __cdecl func_c(int a, int b)
return a +
int __fastcall func_d(int a, int b)
return a +
int main()
func_a(1, 2);
func_b(1, 2);
func_c(1, 2);
func_d(1, 2);
这是在32位模式下main函数编译的结果。在VC中我们可以这样察看反汇编代码。先加一个断点让程序能够在运行时停下来。然后点击菜单栏调试-〉窗口-〉反汇编。这样就可以看到反汇编的结果了。我们可以看到func_a和func_c调用方式完全一样。说明默认的调用方式是__cdecl。func_b和func_a以及func_c之间的区别是Call指令执行之后没有add esp,8。如果你再查看一下func_a和func_b的函数体,会发现func_a是用“ret”指令来返回的。而func_b是用"ret 8"这条指令来返回的。因为"ret 8"会在返回的同时将esp + 8。这样栈才能平衡。func_d则完全不一样,两个参数是通过寄存器传输的,没有对栈的操作。 func_a(1, 2);
func_a (0141096h)
func_b(1, 2);
func_b (01410C3h)
func_c(1, 2);
func_c (014108Ch)
func_d(1, 2);
func_d (0141357h)
然后我们来看一下64位模式下的情况。所有的函数调用的方式是完全一样的,都是通过寄存器来传输参数,类似于32位模式下的__fastcall。这说明在64位模式下,加不加其实都一样的。 func_a(1, 2);
func_a (013FCD10C8h)
func_b(1, 2);
func_b (013FCD1041h)
func_c(1, 2);
func_c (013FCD10AFh)
func_d(1, 2);
func_d (013FCD1352h)
11 条评论分享收藏感谢收起写回答21ic官方微信-->
后使用快捷导航没有帐号?
ST MCU Finder
安装免费手机应用,
寻找理想的ST MCU
请完成以下验证码
本帖赏金 3.00元
查看: 4288|回复: 56
STM32芯片导致的还是C语言导致的这个灵异事件,求大神解释!
&&未结帖(20)
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%打赏:3.00受赏:0.00
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
请教大家一个语法方面的问题
u16 result,
u8 str[5] = {0x00, 0x11, 0x22, 0x33, 0x44};
counter = 1;
result = ((u16)str[counter ++] && 8) | str[counter ++];
计算完成以后result的值是多少呢?
按道理来说是0x1122,但是在stm32上仿真出来后,结果是0x2211,高低字节调了个个儿!
但是如果用
result=(u16)str[1]&&8|str[2];
result = (u16)str[counter ++] && 8;
result |= str[counter ++];
分步计算,得到的值是0x1122。求大神指点迷津orz!!
主题帖子积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
主题帖子积分
专家等级:结帖率:100%打赏:2.70受赏:93.10
主题帖子积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
result = ((u16)str[counter ++] && 8) | str[counter ++];
感觉这一句是从右往左算的。
晴天响霹雳,平地一声雷。
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%打赏:3.00受赏:0.00
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
result = ((u16)str[counter ++]
主题帖子积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
主题帖子积分
专家等级:结帖率:100%打赏:2.70受赏:93.10
主题帖子积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
可能跟C语言计算的优先级有关。
晴天响霹雳,平地一声雷。
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%打赏:3.00受赏:0.00
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
可能跟C语言计算的优先级有关。
可能真的和优先级有关,在[] | ()比较的时候,[]优先级高,先算的后面的。。。
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%打赏:3.00受赏:0.00
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
可能跟C语言计算的优先级有关。
那如何实现想要的功能呢?!求大神解答!!
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%打赏:3.00受赏:0.00
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
你确定仿真的结果不是 0x1111
仿真结果不是0x1111,刚才把计算式改了,
result = ((u16)str[counter ++] && 8) | (str[counter ++]);
结果还是0x2211,感觉还有其他的问题。
主题帖子积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:1.10
主题帖子积分
C 语言标准:
Except where noted, the order of evaluation of operands of individual operators and sub-expressions of individual expressions, and the order in which side effects take place, is unspecified.
除非另有说明,各个的操作符的操作数和各个表达式的子表达式求值的顺序和副作用发生的顺序是未指定的。
具体到你的表达式:((u16)str[counter ++] && 8) | str[counter ++];
你不能假设 | 两边的子表达式哪个先哪个后计算。
打赏了&1.00&元
理由:C语言确实没有明确规定,不同的编译器操作不一样
坚持使用 GCC 一百年不动摇!
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%打赏:3.00受赏:0.00
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
C 语言标准:
Except where noted, the order of evaluation of operands of individual operators and su ...
但是我刚才将表达式改为
result = (str[counter ++]) | (str[counter ++] && 8);
出来的结果还是0x2211,是不是有其他的原因。
主题帖子积分
主题帖子积分
专家等级:结帖率:97%打赏:0.00受赏:38.00
主题帖子积分
谭浩强:不要写那种自己不知道计算机会如何执行的代码。
拆成几行写,不代表写得笨。
++++看NE5532教学视频,炼就工程技术研发功力++++++++++
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%打赏:3.00受赏:0.00
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
谭浩强:不要写那种自己不知道计算机会如何执行的代码。
拆成几行写,不代表写得笨。 ...
但是。。。拆开看起来不爽。。。
主题帖子积分
主题帖子积分
专家等级:结帖率:100%打赏:0.00受赏:43.00
主题帖子积分
result = ((u16)str[counter +1] && 8) | (str[counter +2]);
欢迎进入21IC论坛
电子工程师技术交流群:4545085;
主题帖子积分
助理工程师, 积分 1418, 距离下一级还需 582 积分
助理工程师, 积分 1418, 距离下一级还需 582 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
助理工程师, 积分 1418, 距离下一级还需 582 积分
助理工程师, 积分 1418, 距离下一级还需 582 积分
8楼和10楼两位版主说的在理
主题帖子积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
主题帖子积分
专家等级:结帖率:100%打赏:2.70受赏:93.10
主题帖子积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
那如何实现想要的功能呢?!求大神解答!!
你为什么非要用++呢?直接给出下标不行吗?
晴天响霹雳,平地一声雷。
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%打赏:3.00受赏:0.00
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
本帖最后由 工行ATM 于
16:56 编辑
result = ((u16)str[counter +1]
还是0x2211
//上面结果写错了,不是0x2211
是0x2233,不好意思哈。。
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%打赏:3.00受赏:0.00
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
你为什么非要用++呢?直接给出下标不行吗?
原型是modbus通讯里面的一个操作,得到数组以后从里面取值呢,直接写下标要写很多。。
主题帖子积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
主题帖子积分
专家等级:结帖率:100%打赏:2.70受赏:93.10
主题帖子积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
资深工程师, 积分 10134, 距离下一级还需 9866 积分
原型是modbus通讯里面的一个操作,得到数组以后从里面取值呢,直接写下标要写很多。。 ...
你还是分开写吧,如果存储空间够的话,没有必要那么纠结。
晴天响霹雳,平地一声雷。
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%打赏:3.00受赏:0.00
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
你还是分开写吧,如果存储空间够的话,没有必要那么纠结。
不要。。。
主题帖子积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
提示: 作者被禁止或删除 内容自动屏蔽
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
主题帖子积分
专家等级:结帖率:0%打赏:3.00受赏:0.00
主题帖子积分
初级技术员, 积分 51, 距离下一级还需 49 积分
初级技术员, 积分 51, 距离下一级还需 49 积分
撸主,你就继续装B 吧。
理由相信你也知道结果,也不用大家给你指点什么。 ...
技术新星奖章
人才类勋章
甘甜之泉水
发帖类勋章
时间类勋章
无冕之王奖章
等级类勋章
沉静之湖泊
发帖类勋章
技术领袖奖章
人才类勋章
终身成就奖章
等级类勋章
坚毅之洋流
发帖类勋章
荣誉元老奖章
等级类勋章
欢快之小溪
发帖类勋章
时间类勋章
技术奇才奖章
人才类勋章
社区建设奖章
等级类勋章}

我要回帖

更多关于 紫癜是什么引起的 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信