相关疑难解决方法(0)

"while(*s ++ =*t ++)"如何复制字符串?

我的问题是,这段代码是做什么的(来自http://www.joelonsoftware.com/articles/CollegeAdvice.html):

while (*s++ = *t++);
Run Code Online (Sandbox Code Playgroud)

网站说上面的代码复制了一个字符串,但我不明白为什么......

它与指针有关吗?

c

55
推荐指数
5
解决办法
3万
查看次数

我可以依靠我的编译器来优化const char*上的strlen吗?

在我的SAX xml解析回调(XCode 4,LLVM)中,我正在对这种类型的代码进行大量调用:

static const char* kFoo = "Bar";

void SaxCallBack(char* sax_string,.....)
{
     if ( strcmp(sax_string, kFoo, strlen(kFoo) ) == 0)
     {

     }


  }
Run Code Online (Sandbox Code Playgroud)

假设strlen(kFoo)由编译器优化是否安全?

(Apple示例代码已经预先计算了strlen(kFoo),但我认为这对于大量常量字符串很容易出错.)

编辑:优化的动机:使用NSXMLParser在iPod touch 2G上解析我的SVG地图需要5秒钟(!).所以,我想切换到lib2xml,并优化字符串比较.

c compiler-construction optimization llvm strlen

15
推荐指数
2
解决办法
5819
查看次数

标签 统计

c ×2

compiler-construction ×1

llvm ×1

optimization ×1

strlen ×1