几个关于C代码的问题

2019-07-21 08:47发布

1、
#define PRIVILEGED_FUNCTION
````````````````
````````````````
#if( configSUPPORT_STATIC_ALLOCATION == 1 )
        QueueHandle_t    xQueueGenericCreateStatic( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, uint8_t *pucQueueStorage, StaticQueue_t *pxStaticQueue, const uint8_t ucQueueType )    PRIVILEGED_FUNCTION;
#endif

中间的这个xQueueGenericCreateStatic应该是个函数声明吧(QueueHandle_t就是一个函数返回值类型)?为什么声明最后加一个PRIVILEGED_FUNCTION?没见过这种,请问这算神马?

2、
一个宏定义成一个函数
#define xQueueCreateStatic( uxQueueLength, uxItemSize, pucQueueStorage, pxQueueBuffer )                  xQueueGenericCreateStatic( ( uxQueueLength ), ( uxItemSize ), ( pucQueueStorage ), ( pxQueueBuffer ), ( queueQUEUE_TYPE_BASE ) )
请问后面这个函数每一个参数必须要用括号括起来吗?感觉是没必要的。

3、
#ifndef mtCOVERAGE_TEST_MARKER
        #define mtCOVERAGE_TEST_MARKER()   //这里就是定义了一个空的东西,长得像个函数似的
#endif
·············
·············但是为什么程序里会多次出现这个空的宏定义呢?请问这样有什么作用吗?
               比如
                else
                {
                        mtCOVERAGE_TEST_MARKER();
                }

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
三十岁大叔
1楼-- · 2019-07-21 09:30
本帖最后由 三十岁大叔 于 2018-10-22 18:35 编辑

4、#define listLIST_IS_EMPTY( pxList )        ( ( BaseType_t ) ( ( pxList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ) 我只能看出来这是个宏定义,请问这里会有“返回值”吗?比如 if (  listLIST_IS_EMPTY( &某某 ) ==0  )   这个宏定义的值难道是  ( pxList )->uxNumberOfItems   ?  那不就一定是0吗,为什么还要有这个if判断?
三十岁大叔
2楼-- · 2019-07-21 12:55
 精彩回答 2  元偷偷看……
edmund1234
3楼-- · 2019-07-21 16:50
一) PRIVILEGED_FUNCTION是另一个宏,用作定位section的
二)不是必要的
三)知道就不多说了
四)这宏只返回一个Bool值, 不用if怎么行? 反倒是宏之后的==0是可以不要

一周热门 更多>