• 2


    1.1define  指定用一个符号名称代表一个常量  http://hi.baidu.com/corebo/item/13d89e559c0e74d5d58bac12

    该命令有两种格式:一种是简单的宏定义,另一种是带参数的宏定义。
    (1) 简单的宏定义:
    #define <宏名>   <字符串>
    例: #define PI 3.1415926
    (2) 带参数的宏定义
    #define <宏名> ( <参数表>) <宏体>
    例: #define A(x) x

    1.2 main http://blog.csdn.net/thefutureisour/article/details/7629395

    http://blog.sina.com.cn/s/blog_66a61dbe0100ygwz.html

    在看C++书中     国内的书中都是void main()  而且无返回

    而昨天买了本c++ primer plus中的无论大小例子都是int main()   而且最后都有返回return 0;

    标准的main函数写法只有两种:
    int main()
    int main(int argc, char argc[])
    其它写法都是不提倡的。

     4.1 溢出

    程序溢出基本有两种解释
    一是内存溢出 比如程序出现死循环等状况
    二是数据长度不够 比如long型定义成int型

    在内存中,当一个程序运行时,系统会为它分配一定的资源。例如C中的INT就是分配2字节的内存单元,
    能存放65535种数字,即-32768~32767范围的数,假如大于这个范围了呢?就会向上进位,但是程序只会读取2字节的数,
    超出的部分是不管的,就造成了重头再读数的现象。
    而CPU处理数据是这样的:当处理某种程序A时,
    如果有另外一个程序B要执行,并且符合规范,CPU就会暂停执行当前程序,转去执行下一个程序,内存中 的情况就是这样的:

    [A程序 ]
    [的执行 ]
    [资源 ]〈-- A被分配资源,开始执行
    [ ]
    [B的执行 ]〈-- B暂时存储
    [资源 ]

    (内存的分配从下到上)


    这时,假如缺乏必要的保护措施,并且A输入了大于分配给它的资源,那么这时,
    A的执行代码就会向下占用资源,并且覆盖B的部分。

    如果我们写下精心设计的代码,让覆盖到B的那部分执行别有用心的语句,
    那么当计算机处理完A那部分资源,转回来继续执行B时,就会被欺骗执行那些别用用心的代码。

     

  • 相关阅读:
    windows cluster 心跳检测阀值优化
    添加普通用户为sudoer
    每日备份脚本目录shell
    linux基础配置
    表变量 临时表 使用场景
    mysql分组排序row_number() over(partition by)
    replication_较少延迟时间
    SQL Server 参数化 PARAMETERIZATION
    thinkPHP RBAC模块
    thinkPHP 微信sdk
  • 原文地址:https://www.cnblogs.com/xiebiandreamhigh/p/3157335.html
Copyright © 2020-2023  润新知