社区
C语言
帖子详情
各位请进,C语言中的“重入”,该怎么理解
slwj
2011-07-04 11:57:37
有如下语句,这里的重入指的什么啊,该怎么讲,谢谢各位!
[Quote=引用]
③在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的;
④与第三点一脉相承,printf()经常有重入和性能上的问题。
[/Quote]
...全文
317
13
打赏
收藏
各位请进,C语言中的“重入”,该怎么理解
有如下语句,这里的重入指的什么啊,该怎么讲,谢谢各位! [Quote=引用] ③在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的; ④与第三点一脉相承,printf()经常有重入和性能上的问题。 [/Quote]
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
pathuang68
2011-07-05
打赏
举报
回复
[Quote=引用 8 楼 anyidan 的回复:]
引用 5 楼 zhao4zhong1 的回复:
个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。
学习了
最近想看看 c++,请问赵哥: C++是否有类似 the c pro……
[/Quote]
BS写的 The C++ Programming Language:)
赵4老师
2011-07-05
打赏
举报
回复
[Quote=引用 8 楼 anyidan 的回复:]
引用 5 楼 zhao4zhong1 的回复:
个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。
学习了
最近想看看 c++,请问赵哥: C++是否有类似 the c prog……
[/Quote]
C++的书我只细看过《C++ Primer》
据我个人理解C++知识点大体分如下几个方向:
·和类相关的各种语法(构造/析构、单/多继承、多态……)
·模版和STL
·MFC
·COM
·OpenGL、DirectX等图形相关库
·其它
至于cin、cout、fstream、string不学也罢。
skyworth98
2011-07-05
打赏
举报
回复
[Quote=引用 5 楼 zhao4zhong1 的回复:]
个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。
[/Quote]
个人理解,可重入函数在调用参数相同的情况下,多次调用结果应该相同。
luciferisnotsatan
2011-07-05
打赏
举报
回复
[Quote=引用 5 楼 zhao4zhong1 的回复:]
个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。
[/Quote]
反正就是,可重入的函数,多线程调用该函数是按安全的。
skyworth98
2011-07-05
打赏
举报
回复
sp, 就是这个样子的
[Quote=引用 3 楼 babilife 的回复:]
重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码)可重入,可以允许有该函数的多个副本在运行,由于它们使用的是分离的栈,所以不会互相干扰。
看这里http://www.cppblog.com/prayer/archive/2009/07/05/89270.html
[/Quote]
AnYidan
2011-07-05
打赏
举报
回复
[Quote=引用 5 楼 zhao4zhong1 的回复:]
个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。
[/Quote]
学习了
最近想看看 c++,请问赵哥: C++是否有类似 the c programming langague 在 c 中那样地位的书
hzhxxx
2011-07-04
打赏
举报
回复
也即 线程安全
至善者善之敌
2011-07-04
打赏
举报
回复
重入即表示重复进入,首先它意味着这个函数可以被中断,其次意味着它除了使用自己栈上的变量以外不依赖于任何环境(包括static),这样的函数就是purecode(纯代码)可重入,可以允许有该函数的多个副本在运行,由于它们使用的是分离的栈,所以不会互相干扰。
看这里
http://www.cppblog.com/prayer/archive/2009/07/05/89270.html
fendoulinuxc
2011-07-04
打赏
举报
回复
等待回复啊
金刚葫芦娃
2011-07-04
打赏
举报
回复
帮顶,等待高人.
healer_kx
2011-07-04
打赏
举报
回复
多线程的概念。
自由建客
2011-07-04
打赏
举报
回复
可被中断且可被并用,说白了就是它的结果只跟它入口时的参数状态有关,执行过程中外界对它没有影响?
赵4老师
2011-07-04
打赏
举报
回复
个人理解:
“可重入”和“线程安全”不是一回事!
“可重入”是指发生“当一个函数正执行到中间某步时,另一道程序又从该函数开头开始执行”情况时,函数的结果不受影响。
“线程安全”是指一个或多个函数在不同线程中协同工作时,最终结果不受线程调度影响。
C语言
中
的整型提升
C语言
中
的整型提升
c语言
中
数组部分输入赋值,
c语言
scanf对数组赋值
c语言
动态数组赋值,,
c语言
结构体数组赋值,
c语言
scanf对数组赋值
c语言
数组动态赋值,《手把手教你学51单片机-
C语言
》之六
中
断与数码管动态显示,
c语言
结构体数组赋值,
c语言
scanf对数组赋值
c语言
动态数组赋值,,
c语言
结构体数组赋值,
c语言
scanf对数组赋值
C语言
scanf的用法 名称:sscanf() -从一个字符串
中
读进与指定格式相...for(i=0;i<=19;i++)...
c语言
里的乘法函数,
C语言
中
的高精度乘法
大一新生初谈
C语言
中
的高精度乘法大一新生初谈
C语言
中
的高精度乘法1为什么需要高精度乘法及其实质2高精度乘法原理3高精度乘法的实现a 运算前的准备b一位位地运算c处理进位d输出结果4整体的代码5结语1、为什么需要高精度乘法及其实质我们知道,计算机内部直接用int或double等数据类型储存数字是有范围限制的,即当数据运算大小过大后,计算机将会出现溢出情况,使得计算结果不够精确。为了能够使计算机精确地...
C语言
中
八进制和16进制怎么表示,原码,反码及补码,
C语言
按位取反运算符~
借鉴被人的
C语言
中
8进制和16进制怎么表示
C语言
本身支持的三种输入是: 1. 十进制。比如20,457; 2. 十六进制,以0x开头。比如0x7a; 3. 八进制,以0开头。比如05,0237 所以
C语言
没有二进制输入,最多可用函数去实现。 八进制数的表达方法 C/C++规定,一个数如果要指明它采用八进制,必须在它前面加上一个0(数字0),如:123是十进制,但0
C语言
-对一个整数的各位进行分割
在实际应用
中
,我们常常需要将整数的各位分割后进行使用。 对整数的分割我们可以用一个while循环进行处理,并将分割后的整数置于一个数组
中
存储。 #include<stdio.h> int main(){ int a=123567; int result[10],i=0,j,temp; //用一个while循环对整数进行分割 while(a!=0){ result[i]=a%10; i++; //记录整数位数 a=a/10; } i--; //结束while循环后i肯定
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章