+ -
当前位置:首页 → 问答吧 → 直接写视频映射区被编译器优化掉赋值语句...怎样避免优化呢?

直接写视频映射区被编译器优化掉赋值语句...怎样避免优化呢?

时间:2010-10-11

来源:互联网

代码等价于如下;
  1. #define VIDEO_BUFFER  (char *)b8000
  2. ...
  3. volatile char *video_buffer = VIDEO_BUFFER
  4. ...
  5. putstr(const char *str)
  6. {
  7.      while(*str++ != '\0') {
  8.          *video_buffer++ = c;
  9.           video_buffer++;
  10.        }
  11. }
复制代码
如果使用while(1)  printf("something\n");  则调试的时候... 这个*video_buffer = c被优化掉了...
  Makefile 里面我没有加-O选项...

作者: PCliangtao   发布时间: 2010-10-11

用O0强制不优化,呵呵。

作者: Tinnal   发布时间: 2010-10-11