热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

U-boot-1.1.6-2008R1到vdsp5(bf561)的移植记录(9):bool的问题

在u-bootincludeasmposix_type.h中有这样一个定义:typedefenum{false0,true
 
  
在u-boot/include/asm/posix_type.h中有这样一个定义:
typedef enum { false = 0, true = 1 } bool;
但是在VDSP5中将引起一个错误:
"../../include/asm/posix_types.h", line 63: cc0040: error: expected an
          identifier
 typedef enum { false = 0, true = 1 } bool;
因为VDSP5是将false和true做为内置类型来处理的:
The bool, true, and false keywords are extensions that support the C++ boolean type in C mode. The bool keyword is a unique signed integral type, just as the wchar_t is a unique unsigned type. There are two built-in constants of this type: true and false. When converting a numeric or pointer value to bool, a zero value becomes false, and a nonzero value becomes true. A bool value may be converted to int by promotion, taking true to one and false to zero. A numeric or pointer value is converted automatically to bool when needed.
 
These keyword extensions behave as if the declaration that follows had appeared at the beginning of the file, except that assigning a nonzero integer to a bool type causes it to take on the value true.
 
   typedef enum { false, true } bool;
所以重新定义bool就是画蛇添足了,直接注释掉。
 

推荐阅读
author-avatar
lucky_笨鸟_660
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有