Discussion:
volatile和__volatile有什么区别?
(时间太久无法回复)
snnn
2009-12-07 15:43:33 UTC
Permalink
比如:


static __inline void
halt(void)
{
__asm __volatile("hlt");
}

static __inline u_char
inb(u_int port)
{
u_char data;

__asm volatile("inb %w1, %0" : "=a" (data) : "Nd" (port));
return (data);
}

为什么第一句要用__volatile
而第二句用volatile
·çÖÐ֜ҳ
2009-12-12 17:10:04 UTC
Permalink
http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html

平时好像感觉这两个没有什么明显的区别。。

上面那篇文档里面也就提了这么不痛不痒的一句: Use __volatile__ when we have to be
verymuch careful.
Post by snnn
比如:
static __inline void
halt(void)
{
__asm __volatile("hlt");
}
static __inline u_char
inb(u_int port)
{
u_char data;
__asm volatile("inb %w1, %0" : "=a" (data) : "Nd" (port));
return (data);
}
为什么第一句要用__volatile
而第二句用volatile
--
把问题先交给google,然后再交给你的朋友。。。

http://fzhzhy.is-programmer.com/
Loading...