随笔分类 -  C++

C++11 中值得关注的几大变化(详解)
摘要:源文章来自前C++标准委员会的 Danny Kalev 的 The Biggest Changes in C++11 (and Why You Should Care),赖勇浩做了一个中文翻译在这里。所以,我就不翻译了,我在这里仅对文中提到的这些变化“追问为什么要引入这些变化”的一个探讨,只有知道为 阅读全文

posted @ 2018-03-04 08:11 AlanTu 阅读(157) 评论(0) 推荐(0) 编辑

深入理解C语言
摘要:Dennis Ritchie 过世了,他发明了C语言,一个影响深远并彻底改变世界的计算机语言。一门经历40多年的到今天还长盛不衰的语言,今天很多语言都受到C的影响,C++,Java,C#,Perl, PHP, Javascript, 等等。但是,你对C了解吗?相信你看过本站的《C语言的谜题》还有《谁 阅读全文

posted @ 2018-03-04 08:09 AlanTu 阅读(186) 评论(0) 推荐(0) 编辑

C++的坑真的多吗?
摘要:先说明一下,我不希望本文变成语言争论贴。希望下面的文章能让我们客观理性地了解C++这个语言。(另,我觉得技术争论不要停留在非黑即白的二元价值观上,这样争论无非就是比谁的嗓门大,比哪一方的观点强,毫无价值。我们应该多看看技术是怎么演进的,怎么取舍的。) 事由 周五的时候,我在我的微博上发了一个贴说了一 阅读全文

posted @ 2018-03-03 23:17 AlanTu 阅读(1757) 评论(0) 推荐(0) 编辑

C/C++语言中闭包的探究及比较
摘要:这里主要讨论的是C语言的扩展特性block。该特性是Apple为C、C++、Objective-C增加的扩展,让这些语言可以用类Lambda表达式的语法来创建闭包。前段时间,在对CoreData存取进行封装时(让开发人员可以更简洁快速地写相关代码),我对block机制有了进一步了解,觉得可以和C++ 阅读全文

posted @ 2018-03-03 23:15 AlanTu 阅读(519) 评论(0) 推荐(0) 编辑

“C++的数组不支持多态”?
摘要:先是在微博上看到了个微博和云风的评论,然后我回了“楼主对C的内存管理不了解”。 后来引发了很多人的讨论,大量的人又借机来黑C++,比如: //@Baidu-ThursdayWang:这不就c++弱爆了的地方吗,需要记忆太多东西 //@编程浪子张发财:这个跟C关系真不大。不过我得验证一下,感觉真的不应 阅读全文

posted @ 2018-03-03 23:12 AlanTu 阅读(460) 评论(0) 推荐(0) 编辑

C语言全局变量那些事儿
摘要:作为一名程序员,如果说沉迷一门编程语言算作一种乐趣的话,那么与此同时反过来去黑一门编程语言就是这种乐趣的升华。今天我们就来黑一把C语言,好好展示一下这门经典语言令人抓狂的一面。 我们知道,全局变量是C语言语法和语义中一个很重要的知识点,首先它的存在意义需要从三个不同角度去理解:对于程序员来说,它是一 阅读全文

posted @ 2018-03-03 23:09 AlanTu 阅读(2200) 评论(0) 推荐(0) 编辑

数据即代码:元驱动编程
摘要:几个小伙伴在考虑下面这个各个语言都会遇到的问题: 问题:设计一个命令行参数解析API 一个好的命令行参数解析库一般涉及到这几个常见的方面: 1) 支持方便地生成帮助信息 2) 支持子命令,比如:git包含了push, pull, commit等多种子命令 3) 支持单字符选项、多字符选项、标志选项、 阅读全文

posted @ 2018-03-03 23:08 AlanTu 阅读(346) 评论(0) 推荐(0) 编辑

C++模板”>>”编译问题与词法消歧设计
摘要:在编译理论中,通常将编译过程抽象为5个主要阶段:词法分析(Lexical Analysis),语法分析(Parsing),语义分析(Semantic Analysis),优化(Optimization),代码生成(Code Generation)。这5个阶段类似Unix管道模型,上一个阶段的输出作为 阅读全文

posted @ 2018-03-03 23:07 AlanTu 阅读(190) 评论(0) 推荐(0) 编辑

C++面试中string类的一种正确写法
摘要:C++ 的一个常见面试题是让你实现一个 String 类,限于时间,不可能要求具备 std::string 的功能,但至少要求能正确管理资源。具体来说: 能像 int 类型那样定义变量,并且支持赋值、复制。能用作函数的参数类型及返回类型。能用作标准库容器的元素类型,即 vector/list/deq 阅读全文

posted @ 2018-03-03 23:06 AlanTu 阅读(820) 评论(0) 推荐(0) 编辑

一个“蝇量级” C 语言协程库
摘要:协程(coroutine)顾名思义就是“协作的例程”(co-operative routines)。跟具有操作系统概念的线程不一样,协程是在用户空间利用程序语言的语法语义就能实现逻辑上类似多任务的编程技巧。实际上协程的概念比线程还要早,按照 Knuth 的说法“子例程是协程的特例”,一个子例程就是一 阅读全文

posted @ 2018-03-03 23:02 AlanTu 阅读(624) 评论(0) 推荐(0) 编辑

由苹果的低级Bug想到的
摘要:2014年2月22日,在这个“这么二”的日子里,苹果公司推送了 iOS 7.0.6(版本号11B651)修复了 SSL 连接验证的一个 bug。官方网页在这里:http://support.apple.com/kb/HT6147,网页中如下描述: Impact: An attacker with a 阅读全文

posted @ 2018-03-03 23:01 AlanTu 阅读(566) 评论(0) 推荐(0) 编辑

一个浮点数跨平台产生的问题
摘要:感谢网友唐磊(微博@唐磊_name)投稿,本文原文在唐磊的博客上(原文地址),原文分析还不够好,而且可能对人有误导,所以,我对原文做了很多修改,并加了Linux下的内容。浮点数是一个很复杂的事情,希望这篇文章有助于大家了解浮点数与其相关的C/C++的编译选项。(注:我没有Windows 32位以及C 阅读全文

posted @ 2018-03-03 23:00 AlanTu 阅读(1422) 评论(0) 推荐(0) 编辑

C语言结构体里的成员数组和指针
摘要:单看这文章的标题,你可能会觉得好像没什么意思。你先别下这个结论,相信这篇文章会对你理解C语言有帮助。这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接。微博截图如下。我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章。 为了方便你把代码copy过去编译和 阅读全文

posted @ 2018-03-03 22:59 AlanTu 阅读(11448) 评论(0) 推荐(1) 编辑

C语言的整型溢出问题
摘要:整型溢出有点老生常谈了,bla, bla, bla… 但似乎没有引起多少人的重视。整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击,比如最近OpenSSL的heartbleed事件,就是一个buffer overread的事件。在这里写下这篇文章,希望大家都了解一下整型溢出,编译器的行为 阅读全文

posted @ 2018-03-03 22:58 AlanTu 阅读(3800) 评论(0) 推荐(1) 编辑

如何重构“箭头型”代码
摘要:本文主要起因是,一次在微博上和朋友关于嵌套好几层的if-else语句的代码重构的讨论(微博原文),在微博上大家有各式各样的问题和想法。按道理来说这些都是编程的基本功,似乎不太值得写一篇文章,不过我觉得很多东西可以从一个简单的东西出发,到达本质,所以,我觉得有必要在这里写一篇的文章。不一定全对,只希望 阅读全文

posted @ 2018-03-03 22:54 AlanTu 阅读(775) 评论(0) 推荐(0) 编辑

API设计原则
摘要:译序 Qt的设计水准在业界很有口碑,一致、易于掌握和强大的API是Qt最著名的优点之一。此文既是Qt官网上的API设计指导准则,也是Qt在API设计上的实践总结。虽然Qt用的是C++,但其中设计原则和思考是具有普适性的(如果你对C++还不精通,可以忽略与C++强相关或是过于细节的部分,仍然可以学习或 阅读全文

posted @ 2018-03-03 22:52 AlanTu 阅读(740) 评论(0) 推荐(0) 编辑

谁说C语言很简单?
摘要:前两天,Neo写了一篇《语言的歧义》其使用C语言讨论了一些语言的歧义。大家应该也顺便了解了一下C语言中的很多不可思异的东西,可能也是你从未注意到的东西。 是的,C语言并不简单,让我们来看看下面这些示例: 本题主要是关于C/C++中变量初始化的问题。 答案:sizeof 是一个unsigned的类型, 阅读全文

posted @ 2018-03-03 22:40 AlanTu 阅读(1600) 评论(0) 推荐(0) 编辑

UNIX下的LD_PRELOAD环境变量
摘要:也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久。不过,在这里,我还是想讨论一下这个环境变量。因为这个环境变量所带来的安全问题非常严重,值得所有的Unix下的程序员的注意。 在开始讲述为什么要当心LD_PRELOAD环 境变量之前,请让我先说明一下程序的链接。所谓链接,也就是说编译 阅读全文

posted @ 2018-03-03 22:30 AlanTu 阅读(831) 评论(0) 推荐(0) 编辑

STL 的string类怎么啦?
摘要:前言 上个周末在和我的同学爬香山闲聊时,同学说到STL中的string类曾经让他备受折磨,几年前他开发一个系统前对string类还比较清楚,然后随着程序的复杂度的加深,到了后期,他几乎对string类失去了信心和信任,他觉得他对string类一头雾水。老实说,我几年前也有同样的痛苦(就是当我写下《标 阅读全文

posted @ 2018-03-03 22:28 AlanTu 阅读(495) 评论(0) 推荐(0) 编辑

从语句 char* p="test" 说起
摘要:我相信,使用C/C++多年的人对下面这个字符串赋值语句都不会陌生吧。 char* p = "test"; 同时,我也相信,各位在使用这种语句后吃过很多苦头也不少吧?只要你想利用指针p来改变字符串的内容,你的程序都会得到一个让你颜面尽失一个内存非法操作。比如,下面的这些语句: p[0] = 's'; 阅读全文

posted @ 2018-03-03 22:27 AlanTu 阅读(1066) 评论(0) 推荐(0) 编辑

导航