当需要函数可以返回一个变量的字符串时便可以使用静态变量来实现(静态常量是内存常驻的),这样就可以在return中返回临时变量了。

    1. CHAR *getBoolStr(BOOL value)
    2. {
    3. static CHAR boolStr[6] = {0};
    4. memzero(boolStr, 6);
    5. if (value)
    6. {
    7. strcpy(boolStr, "TRUE");
    8. }
    9. else
    10. {
    11. strcpy(boolStr, "FALSE");
    12. }
    13. return boolStr;
    14. }

    这样便可由return直接返回一个动态的字符串,但需要注意这种返回栈内存的函数是不可重入的,一般可用于简单的字符串打印转换,比如用于打印IP、打印MAC、打印一谢类型等。