从函数返回一个字符串.限制

Returning a character string from a function.... restrictions?

本文关键字:一个 字符串 限制 函数 返回      更新时间:2023-10-16

我想知道我有这个特殊的代码包

char* usage()
     {
         static char errors[] = {"Sorry Invalid Option enterednPlease Enter an appropriate option"};        
         return errors;
     }

我已经正确地调用了函数,它做了我想让它做的。然而,一旦我这样做…我得到了大量的错误。

char* usage()
     {
         static char errors[] = {"Sorry Invalid Option enteredn
                                 Please Enter an appropriate option"};        
         return errors;
     }

我所做的就是把第二行放在下面一行,我得到了错误。现在,我想知道的是这两者的区别是什么?我似乎有相同的参数进入两个字符数组。这是因为我没有为数组占用空间吗?

C和c++不支持这种方式的多行文字,但是你可以这样使用:

char* usage()
{
     static char errors[] = {"Sorry Invalid Option enteredn"
                             "Please Enter an appropriate option"};        
     return errors;
}

注意额外的引号!

在C(我不知道c++)中,您可以使用引号连接字符串的事实(这种连接是由预处理器完成的)在几行中编写字符串

char test[] = "one " "two" " " "<= that's a space :)" "n"
              "three and fourn"
              "five etc and so onn"
              "n"
              "for ever and ever ...n";

注意:除最后一行外,没有分号

相关文章: