ucos-ii 2.85的宏定义为什么多了‘u’字?
奇怪了,为什么这个版本的宏定义都多了一个‘u’字哪有关于这方面的说明啊?大家说说。。。
2.51版本的定义是这样的:
#defineOS_VERSION 251 /* Version of uC/OS-II (Vx.yy mult. by 100) */
而2.85版本的定义又是这样的:
#defineOS_VERSION 285u /* Version of uC/OS-II (Vx.yy mult. by 100) */
*********************************************************************************************************
* TASK STATUS (Bit definition for OSTCBStat)
*********************************************************************************************************
*/
#defineOS_STAT_RDY 0x00u /* Ready to run */
#defineOS_STAT_SEM 0x01u /* Pending on semaphore */
#defineOS_STAT_MBOX 0x02u /* Pending on mailbox */
#defineOS_STAT_Q 0x04u /* Pending on queue */
#defineOS_STAT_SUSPEND 0x08u /* Task is suspended */
#defineOS_STAT_MUTEX 0x10u /* Pending on mutual exclusion semaphore */
#defineOS_STAT_FLAG 0x20u /* Pending on event flag group */
#defineOS_STAT_PEND_ANY (OS_STAT_SEM | OS_STAT_MBOX | OS_STAT_Q | OS_STAT_MUTEX | OS_STAT_FLAG)
/*
*********************************************************************************************************
* TASK PEND STATUS (Status codes for OSTCBStatPend)
*********************************************************************************************************
*/
#defineOS_STAT_PEND_OK 0u /* Pending status OK, not pending, or pending complete */
#defineOS_STAT_PEND_TO 1u /* Pending timed out */
#defineOS_STAT_PEND_ABORT 2u /* Pending aborted */ u嘛, 说明是指定类型, 可以表示的范围更大
#defineOS_VERSION 251 这个251是没有指定类型.. #defineOS_VERSION 251
//这里251是int型
#defineOS_VERSION 251u
//这里251u是unsigned int型
【1楼】 yajira
这个251是没有指定类型..
---------------------------------------
只是没有显式指定类型。
字面值整型常量的类型,C语言标准有明确规定。 哦,想起来了,一直都是直接写数字,看来我的代码得规范起来啊,呵呵,谢谢 哈哈, 果然厉害..羞愧了.... 查过,C标准如果写成:#defineOS_VERSION 251
中的数字251在缺省情况下整型文字常量被当作是一个int 型的有符号值 heh ,学习了,看来的规范啊
本来也在纳闷这意思,受教了 markmark ucos定义数字后面的u 呵呵 如何定义简短的常量呢?
比如0~255的无符常量 哈哈,每次来OurAVR论坛都能很快轻松找到答案!
页:
[1]