野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 20533|回复: 3

Palette_draw_point(uint16_t x, uint16_t y)函数理解

[复制链接]
发表于 2014-8-4 23:11:40 | 显示全部楼层 |阅读模式
void Palette_draw_point(uint16_t x, uint16_t y)
{
  /* 画笔默认为黑色 */
  static u16 Pen_color=0;
  u16 y_pos = y;

  /* 在画板内取色 */
  if( x<40 )
  {
    if( y>30 )
    Pen_color = (y_pos<60)?GREEN:\
                (y_pos<90)?BLUE:\
                (y_pos<120)?BRED:\
                (y_pos<150)?GRED:\
                (y_pos<180)?GBLUE:\
                (y_pos<210)?BLACK:\
                (y_pos<240)?RED:BLUE;
    else
    {/* 清屏 */      
      #if 1
      LCD_Clear(40, 0, 280, 240, BLACK);
      #elif 0
      LCD_Clear(40, 0, 280, 240, WHITE);
      #endif
      return;
    }
  }
  else
  {
    #if 0
    LCD_SetPoint(x , y , Pen_color);
    LCD_SetPoint(x+1 , y , Pen_color);
    LCD_SetPoint(x , y+1 , Pen_color);
    LCD_SetPoint(x+1 , y+1 , Pen_color);
    #elif 1
    LCD_SetPoint(x , y , Pen_color);
    LCD_SetPoint(x-1 , y , Pen_color);
    LCD_SetPoint(x , y-1 , Pen_color);
    LCD_SetPoint(x+1 , y , Pen_color);
    LCD_SetPoint(x , y+1 , Pen_color);
    #endif
  }       
}


其中 #if 0。。。 #elif 1 是什么意思  比如 #if 0  这个条件判断是假 那么这句下面的语句是不是永远不会执行?

问题可能有点浅显,还请前辈指点
回复

使用道具 举报

发表于 2014-8-5 09:06:57 | 显示全部楼层
是的,if 0里边的代码直接就不会被编译器加入去编译
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-5 12:16:23 | 显示全部楼层
仰平心 发表于 2014-8-5 09:06
是的,if 0里边的代码直接就不会被编译器加入去编译

估计是 调试代码用的  呵呵
回复 支持 反对

使用道具 举报

发表于 2014-8-5 14:49:44 | 显示全部楼层
鱼乐99 发表于 2014-8-5 12:16
估计是 调试代码用的  呵呵

是的,用这样的预编译句子方便调试使用
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 08:52 , Processed in 0.036471 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表