如题:
int main() { int a,b,c; a = inWord(0x100); /*读取I/O空间0x100端口的内容存入a变量*/ b = a; a = inWord (0x100); /*再次读取I/O空间0x100端口的内容存入a变量*/ c = a; return 0; }
但是不能说一定会出错 只是可能出错
为什么说只是可能呢 这个要看编译器了 不同的编译器优化方式不同
为了我们代码的可移植行 应该给a加上 volatile关键字
否则
int a,b,c; a = inWord(0x100); b = a; a = inWord (0x100); c = a;
很可能被编译器优化为:
int a,b,c; a = inWord(0x100); b = a; c = a;
转载于:https://www.cnblogs.com/haylim/archive/2013/02/20/2919749.html