C/C++
文章平均质量分 81
wangpengk7788
这个作者很懒,什么都没留下…
展开
-
运行时链接方式
在介绍入口函数之前,先介绍一下几种运行时的库(Runtime Library)以及他们对应的链接选项:1.Multi-threaded Debug (/MTd)这个是debug版本的多线程库,静态链接的。2.Multi-threaded (/MT)这是release版本的多线程库,静态链接的。3.Multi-threaded Debug DLL (/MDd)转载 2016-12-27 00:41:57 · 731 阅读 · 0 评论 -
Windows下程序入口函数与_security_init_cookie
win32程序分为两种:1.控制台(/SUBSYSTEM:CONSOLE )2.GUI(/SUBSYSTEM:WINDOWS)首先看控制台版本的:写一段最简单的,或者就直接使用编译器参数的默认main函数,如下:[cpp] view plain copy // EntryFunction.cpp : 定义控制台应用程序的入转载 2016-12-27 01:01:39 · 4966 阅读 · 0 评论 -
基于CheckStackVars的安全检查
在VS2008下,函数的栈空间里如果存在数组,就会自动加上CheckStackVars检查,顾名思义,就是用来检查局部数据是否访问越界。相对来说,这种检查只能起到一定的作用,并不会所有越界访问都能检查到,根据后面的原理介绍会了解到这点。既然是检查局部的,那么在函数内定义的static类型数组或者函数外部的全局数组并不会采用此检查,既然是检查数组,那么如果函数内没有局部数组时,此检查也不会存在。转载 2016-12-27 01:04:14 · 678 阅读 · 0 评论 -
对new的几种形式的一些认识
一道考题:请说说已经有malloc函数了为何还要引进new?答:当用在内置数据类型或者结构时,malloc能满足我们的需要,但用在类类型时不能,这就需要引用new,new既分配堆内存,又自动调用类的构造函数来创建对象。是本教科书都有提到上面这一点,可是这些公司为何还乐此不疲的考到这到道题呢?事情不是这么简单,我献丑说这几句。一、new 与 opeartor转载 2016-12-31 23:39:28 · 1515 阅读 · 0 评论 -
【C++11】新特性——auto的使用
[+] C++11中引入的auto主要有两种用途:自动类型推断和返回值占位。auto在C++98中的标识临时变量的语义,由于使用极少且多余,在C++11中已被删除。前后两个标准的auto,完全是两个概念。1. 自动类型推断 auto自动类型推断,用于从初始化表达式中推断出变量的数据类型。通过auto的自动类型推断,可以大大简化我们的编程工作。下面是一些使用a转载 2017-02-09 19:36:13 · 470 阅读 · 0 评论 -
c++11新特性--decltype
返回值 decltype(表达式)[返回值的类型是表达式参数的类型]这个可也用来决定表达式的类型,就像Bjarne暗示的一样,如果我们需要去初始化某种类型的变量,auto是最简单的选择,但是如果我们所需的类型不是一个变量,例如返回值这时我们可也试一下decltype。现在我们回看一些例子我们先前做过的,[cpp] view转载 2017-02-09 19:36:54 · 385 阅读 · 0 评论 -
c++11新特性--static_assert
static_assert:这个宏用于检测和诊断编译时错误。编译期,这是一个与 CRT-assert(运行时宏)相反的宏。这个好东西用于检测编译时程序的不变量。这需要一个表达式可以被计算为 bool 或 string (字符串)。如果这个表达式的值为 false ,那么编译器会出现一个包含特定字符串的错误,同时编译失败。如果为 true 那么没有任何影响。我们可以在以下使用转载 2017-02-09 19:38:31 · 3591 阅读 · 0 评论 -
c++11新特性--Lambda
生成随机数字 假设我们有一个vector容器,想用100以内的随机数初始化它,其中一个办法是通过generate函数生成,如代码1所示。generate函数接受三个参数,前两个参数指定容器的起止位置,后一个参数指定生成逻辑,这个逻辑正是通过Lambda来表达的。代码 1 我们现在看到Lambda是最简形式,只包含捕获子句和函数体两个必要部分,其他转载 2017-02-09 19:42:06 · 257 阅读 · 0 评论