演示程序:
#include
using namespace std;
int main()
{
int x;
cout << “输出一个整数:” ; cin >> x;
x = x+1 ;
cout << “x+1 = ” << x << endl ;
return 0;
}
stdio.h 是 C 语言的输入输出支持头文件,
iostream.h 是 C++ 的输入输出支持头文件。
一般都有如下内容:
#include
using namespace std;
printf 是 C 语言中的输出语句,
cout流 是 C 语言中的输出语句。
cin 是一个代表标准输入设备的对象,是 C++ 中预定义的对象。
>> 是输入的操作符,表示将从操作符左边接收的输入放到右边的对象中。
cin >> x 表示从键盘接收输入的内容赋给 x 。
endl 表示 “回车换行”。
return 0; 是一条跳出程序的代码,他表示程序跳出并返回到操作系统,同时带有一个数字 0 作为返回值。
单行注释: //
块注释: /* … */
C++ 编译器原理:
首先编译器进行语法分析,把字符串分离出来。
然后进行语义分析,把各个由语法分析分析出的语法单元的意义搞清楚。
最后生成的是目标文件,也称为 obj 文件(Linux 下为 .out 文件,windows 下为 .obj 文件)。
再经过链接器的链接就可以生成最后的 EXE 文件了。
有些时候需要把多个文件产生的目标文件进行链接,产生最后的代码。这一过程称为交叉链接。
头文件 include 的两种方式:
1、<> 这种方式,编译器查找的时候,会在编译器的安装目录的标准库中开始查找,
2、”” 这种方式,会在当前的工程所在的文件夹开始寻找,也就是源程序所在的文件夹,若没找到则再查找标准库。
头文件的意义:
头文件对 模块的设计者 A 来说:
要把它的模块的实现细节封装在实现里面,并且提供接口给别人调用,不是所有的模块的实现细节都放在头文件,而是将最基础的接口放到头文件。
头文件对 模块的使用者 B 来说:
根据 A 代码模块的使用定义说明,在没有代码细节的情况下,知道怎么使用 A 编写出来的模块
汇编语言编写难度大,可移植性差。而 C 语言编译器,可以将 C 语言代码分别转为不同平台(80×86、ARM、MIPS)的汇编代码,然后再通过汇编器,将不同平台的汇编代码编译成其可运行的二进制文件。
MFC 是微软基于 win API 封装好的一个窗口系统开发框架,可以用 MFC 快速开发 Windows 界面程序。
企业现已很少用 MFC,现多用 C# 来做。
如果跨平台,可用 QT(如 WPS)。
编译器为了节省编译时间,不会每次都编译所有文件,而是编译更改过的文件,所以在发布版本的时候最好重新清理一下代码,以免出现莫名 bug。
C 语言编译过程:
单个单个的 .c 文件进行编译,最后把所有的文件从 main 函数开始,依次链接到一块
即:
1、单个文件的编译
2、所有文件的链接生成可执行文件
二进制负数的表示:
例如用 short(16bit) 来储存 -4 和 +4 :
1、用最高一个 bit 表示正、负
2、剩下的 15bit 表示数据
所以,+4 的二进制表示就是:0 0000000 00000100
对于负数,要将 +4 剩下的 15bit 取反后再加 1:
取反:0000000 00000100 –> 1111111 11111011
加 1:1111111 11111011 + 1 –> 1111111 11111100
所以 -4 的二进制表示:11111111 11111100