《c和指针》——1

翻译步骤:
    1,组成程序的每个源文件通过编译分别转成目标代码;
    2,各个目标代码通过链接器捆绑在一起,形成一个单一完整的可执行程序。
    注:链接器同时可以把使用的函数(不管是c标准的还是程序员自己编写的)都链接到程序中。
编译过程:
    1,预处理器处理:执行一些文本操作(#define和#include文本替代);
    2,源代码经过解析:判断语句的意思;
    3,产生目标代码;
    若加入了要求需要优化的选项,优化器要对目标代码进行优化。
执行:
    1,程序载入到内存中:这一步一般由操作系统完成,是那些不是存放在堆和栈中尚未初始化的数据获得初值;
    2,程序执行开始
    3,程序终止:可能成功可能失败;
    注:运行时堆栈:用于存储函数的局部变量和返回地址;静态内存:存储在静态内存中的数据在整个程序执行过程中一直保留他们的值
声明和定义:函数声明描述函数将要操作的数据类型和返回类型;函数定义则是需要执行的步骤。
转义字符:
    \a      响铃(BEL)
    \b    退格(BS)
    \f    换页(FF)
    \n    换行(LF)
    \r    回车(CR)
    \t    水平制表(HT)
    \v    垂直制表(VT)
    \\    代表一个反斜线字符''\'
    \'    代表一个单引号(撇号)字符
    \"    代表一个双引号字符
    \?    代表一个问号
    \0    空字符(NULL)
    \ddd     1到3位八进制数所代表的任意字符        三位八进制
    \xhh     1到2位十六进制所代表的任意字符        二位十六进制
注释:
    /*开头;*/结尾,其间所有都被注释掉。绝大多数注释是成块出现的。
标识符:
    变量,函数,类型等的名字,以字母,数字和下划线组成,并不能以数字开头;标识符长度没有限制,但是标准允许编译器忽略31以后的字符;c语言对字母大小写敏感。
良好的编程风格:提高程序可读性,更容易维护。

链接属性:
    none:总是被当做单独的个体;
    external:无论声明多少次,位于几个源文件都表示同一个实体;
    internal:在同一个文件内的所有声明都只同一个实体。
static关键字:(说明一下,本书讲的是结合链接属性来讲的,有点难懂,参考《程序员面试宝典的解释》附带修饰c++的类)
    1. 用于函数内部的局部变量时,该变量的内存只能分配一次,其值在下次调用时维持上次的值;
    2. 用于全局变量时,使变量的作用域限制在一个模块(文件)内,但不能被外部模块函数访问;
    3. 用于函数时,使函数只能可以被模块内其他函数访问,这个函数的使用范围被限制在声明他的模块内;
        (上述是c语言的修饰)
    4. 用于类成员变量时,代表该变量属于类的(即所有对象共享这个变量),对类的所有对象只是一份拷贝;
    5. 用于类成员函数时,代表该函数为整个类所有。注意,该函数不接收this指针,也意味着不能调用一般的成员函数或者变量
    (后两个是c++中修饰类中的)

posted on 2015-11-29 18:20  延长比赛  阅读(147)  评论(0编辑  收藏  举报

导航