NevermindZZT / letter-shell

letter shell
MIT License
1.2k stars 438 forks source link

命令为带符号,应该如何导出? #170

Open shuaniaun opened 10 months ago

shuaniaun commented 10 months ago

void func(void) { ; } SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0)|SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC), ASK?, func, func info);

此时因为有符号?,无法编译,但是我的命令确实要带符号,该怎么操作呢?

NevermindZZT commented 10 months ago

可以试试用 asii 转义 ASK\x3f

shuaniaun commented 10 months ago

展开宏定义看了下,应该是不行的,变量名不能有特殊符号吧。

define SHELL_EXPORT_CMD(_attr, _name, _func, _desc, ...) \

        const char shellCmd##_name[] = #_name; \
        const char shellDesc##_name[] = #_desc; \
        SHELL_USED const ShellCommand \
        shellCommand##_name SHELL_SECTION("shellCommand") =  \
        { \
            .attr.value = _attr, \
            .data.cmd.name = shellCmd##_name, \
            .data.cmd.function = (int (*)())_func, \
            .data.cmd.desc = shellDesc##_name, \
            ##__VA_ARGS__ \
        }
NevermindZZT commented 10 months ago

那只能不用宏,直接把这个宏展开定义了