搜索
bottom↓
回复: 12

这是啥意思额???TI的LM3S8962SD卡代码上的一段程序

[复制链接]

出0入0汤圆

发表于 2010-1-25 00:11:44 | 显示全部楼层 |阅读模式
typedef enum {
    FR_OK = 0,            /* 0 */
    FR_NOT_READY,        /* 1 */
    FR_NO_FILE,            /* 2 */
    FR_NO_PATH,            /* 3 */
    FR_INVALID_NAME,    /* 4 */
    FR_INVALID_DRIVE,    /* 5 */
    FR_DENIED,            /* 6 */
    FR_EXIST,            /* 7 */
    FR_RW_ERROR,        /* 8 */
    FR_WRITE_PROTECTED,    /* 9 */
    FR_NOT_ENABLED,        /* 10 */
    FR_NO_FILESYSTEM,    /* 11 */
    FR_INVALID_OBJECT,    /* 12 */
    FR_MKFS_ABORTED        /* 13 */
} FRESULT;

/////////////////////////////////////////////

typedef struct
{
    FRESULT fresult;
    char *pcResultStr;
}
tFresultString;

/////////////////////////////////

#define FRESULT_ENTRY(f)        { (f), (#f) }

////////////////////////////////
tFresultString g_sFresultStrings[] =
{
    FRESULT_ENTRY(FR_OK),
    FRESULT_ENTRY(FR_NOT_READY),
    FRESULT_ENTRY(FR_NO_FILE),
    FRESULT_ENTRY(FR_NO_PATH),
    FRESULT_ENTRY(FR_INVALID_NAME),
    FRESULT_ENTRY(FR_INVALID_DRIVE),
    FRESULT_ENTRY(FR_DENIED),
    FRESULT_ENTRY(FR_EXIST),
    FRESULT_ENTRY(FR_RW_ERROR),
    FRESULT_ENTRY(FR_WRITE_PROTECTED),
    FRESULT_ENTRY(FR_NOT_ENABLED),
    FRESULT_ENTRY(FR_NO_FILESYSTEM),
    FRESULT_ENTRY(FR_INVALID_OBJECT),
    FRESULT_ENTRY(FR_MKFS_ABORTED)
};
///////////////////////////////////////////////
稍微整理了下代码。
其中#define FRESULT_ENTRY(f)    { (f), (#f) }中#f是干嘛用的啊。向坛里的弟兄们咨询下。以前也看到过这用法,没在意。这次又碰到了得搞懂才行。
谢谢了额。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入148汤圆

发表于 2010-1-25 07:58:00 | 显示全部楼层
#用来将f转换为字符串

出0入0汤圆

发表于 2010-1-25 08:20:18 | 显示全部楼层
学习。

出0入0汤圆

发表于 2010-1-25 08:32:47 | 显示全部楼层
1楼正解。

展开后变成:

tFresultString g_sFresultStrings[] =
{
    {FR_OK,      "FR_OK"},
    {FR_NOT_READY,"FR_NOT_READY"},
    {FR_NO_FILE,  "FR_NO_FILE"},
     ...
};
其中FR_OK,FR_NOT_READY等是枚举FRESULT的成员,等于0,1 ...

出0入0汤圆

发表于 2010-1-25 08:46:28 | 显示全部楼层
学习了,以前从来没碰到过

出0入0汤圆

发表于 2010-1-25 09:49:34 | 显示全部楼层
字符串

出0入0汤圆

发表于 2010-1-25 10:04:17 | 显示全部楼层
没看懂~

出0入0汤圆

 楼主| 发表于 2010-1-25 19:02:06 | 显示全部楼层
受教了。。。谢谢了。呼呼~~~

出0入0汤圆

发表于 2015-10-17 10:10:37 | 显示全部楼层
yplin27 发表于 2010-1-25 07:58
#用来将f转换为字符串

#用来将f转换为字符串,这个是编译器支持的吗

出0入0汤圆

发表于 2015-10-17 10:33:26 | 显示全部楼层
FRESULT_ENTRY(FR_OK)展开为{0,"FR_OK"}

出0入0汤圆

发表于 2015-10-17 16:07:17 | 显示全部楼层
banye2010 发表于 2015-10-17 10:10
#用来将f转换为字符串,这个是编译器支持的吗

同问这个

出0入0汤圆

发表于 2015-10-17 16:45:17 | 显示全部楼层

3.宏的单行定义(少见用法)

#define A(x) T_##x
#define B(x) #@x
#define C(x) #x

我们假设:x=1,则有:

A(1)——〉T_1
B(1)——〉’1′
C(1)——〉”1″
c语言的语法,少用

出0入0汤圆

发表于 2016-2-11 23:06:45 来自手机 | 显示全部楼层
好多怪异得也许我们一辈子都用不了的,语法。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 19:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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