编程常识的学习

程序编译一般需经预处理、编译、汇编和链接几个步骤。在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库称为静态库,其特点是可执行文件中包含了库代码的一份完整拷贝;缺点就是被多次使用就会有多份冗余拷贝。

静态库和动态库是两种共享程序代码的方式,它们的区别是:静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。使用动态库的优点是系统只需载入一次动态库,不同的程序可以得到内存中相同的动态库的复本,因此节省了很多内存。

反思:

1. 常量尽可能使用 int 类型,尽量少用字符串类型;

2. 对文件的存储可以向对数据库的操作一样,写成一个或几个类,对文件的操作方法集中起来,不要写的到处都是;

3. 对网络的操作,可以分开写,但是一些共同的代码考虑是否可以抽出来写成一个类方法;

4. 网络的基础知识学习;

==============================================================

类型是所有程序的基础,类型告诉我们数据代表什么意思以及可以对数据执行哪些操作。

静态类型 (statically typed) 语言:在编译时执行类型检查,在使用某个某个名字之前,必须先告知编译器改名字的类型,c++ 和 java 都是静态类型语言

动态类型语言:在运行时才检查语句中对象的类型,例如 python,javaScript

函数:程序员可以使用函数把行为抽象成可调用的计算单元

typedef 的作用:

1、为了隐藏特定类型的实现,强调使用类型的目的;

2、简化复杂的类型定义,使其更易理解;

3、允许一种类型用于多个目的,同时使得每次使用该类型的目的明确;

使用预编译命令来对应多重包含

c++ 中每个变量都有作用域,每个对象都有生命期

变量提供了程序可以操作的存储区 (一块内存),c++ 中每一个变量都有特定的类型,该类型决定了变量的内存大小和布局、能够存储于该内存中的值的取值范围以及可应用在该变量上的操作集。一般称呼是“变量”和“对象”。

程序设计语言的一些共同特性:

内置数据类型,如整型、字符型等;

表达式和语句:表达式和语句用于操作上述类型的值;

变量:程序员可以使用变量对所用的对象命名;

控制结构:如 if 和 while,程序员可以使用控制结构有条件的执行或重复执行一组动作;

函数:程序员可以使用函数把行为抽象成可调用的计算单元;

大多数现代程序语言都采用两种方式扩充上述基本特征集:允许程序员通过自定义数据类型扩展该语言;提供标准类库,这些类库定义了一些并非内置在语言中的使用函数和数据类型。

变量是计算机里一块特定的内存,它由一个或多个连续的字节所组成。每个变量都有一个名称,可以用该名称表示内存的这个位置,以提取它包含的数据或存储一个新的数值。

int salaryl; // 变量声明 它声明了变量的名称

指针是可以存储地址的变量,存储在指针中的地址通常是另一个变量。指针变量包含一个地址。变量可以由包含其地址的指针来操作。一个指针变量必须指定它所指的变量类型,编译器会根据变量类型来处理它所指的内存的内容。

一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 汇编程序 (assembler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)

指针是一种特殊的变量,所存放的是内存的地址,通过指针变量可访问所指向内存空间中的内容。
数组是一组相关的内存位置,由连续的存储单元组成,他们都具有相同的名称和位置。
只有包含字符串结束符”/0”的数组才是字符串数组,字符数组则不能被函数当做字符串数组。
字符型数组可以存放字符串数组,字符串数组与一般的字符数组的区别是字符串数组包含字符串结束符”/0”,因此字符串一位数组的长度要比实际字符串的长度多1。
程序声明变量后,编译器就会为该变量分配相应的内存单元,即每个变量在内存会有固定的位置,有具体的地址和大小。

ANSI编码表示英文字符时用一个字节,表示中文用两个字节,而unicode不管表示英文字符还是中文都是用两个字节来表示。

猜你喜欢

转载自quding0308.iteye.com/blog/2145236