C 11型扣除与const char *
发布时间:2020-12-16 05:45:00 所属栏目:百科 来源:网络整理
导读:在 GotW 94年,Herb Sutter对“经典C”声明进行了区分 const char* s = "Hello"; 和“现代”风格 auto s = "Hello"; 他告诉我们,“汽车风格更正确”的类型有微妙的差异. [编辑补充:评论表明,这可能不是Sutter实际意义上的公平表示;见下面的讨论. 但…有什么
在
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说什么(上下文很重要),但无论如何,类型是一样的.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |