在
GotW 94年,Herb Sutter对“经典C”声明进行了区分
const char* s = "Hello";
和“现代”风格
auto s = "Hello";
他告诉我们,“汽车风格更正确”的类型有微妙的差异. [编辑补充:评论表明,这可能不是Sutter实际意义上的公平表示;见下面的讨论.
但…有什么区别?我的印象是,一个const char *是正确的方法来引用字符串文字.此外,当我问我的调试器(lldb)时,似乎认为这些类型实际上是一样的:
* thread #1: tid = 0x1756c2,0x0000000100000f8f test`main + 31 at test.cc:4,queue = 'com.apple.main-thread',stop reason = breakpoint 1.1 frame #0: 0x0000000100000f8f test`main + 31 at test.cc:4 1 int main(void) { 2 const char* s = "Hello"; 3 auto t = "Hello"; -> 4 return 0; 5 } (lldb) fr v (const char *) s = 0x0000000100000f91 "Hello" (const char *) t = 0x0000000100000f91 "Hello"
萨特指的是微妙的区别?
解决方法
你不完全清楚Herb说什么(上下文很重要),但无论如何,类型是一样的.
原文地址:https://www.jb51.cc/c/113773.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。