- 64位linux编译后的程序只能在64位linux下运行,32位linux编译后的程序只能在32位linux下运行,这一点与windows不同。
stdio.h这个文件在操作系统的系统目录下
#include <文件名>,如果文件在系统目录下,那么需要用< >
#include “文件名”,如果文件在当前目录下,那么用 “ ”int a;//定义一个变量
extern int b;//声明一个变量- int main()和void main()在c语言中是一样的,但C++只接受int main()这种定义方式。
- system系统调用
需要包含stdlib.h这个头文件,system主要功能是通过程序执行另外一个程序 - C语言所有的库函数调用在不同操作系统下不能保证执行结果是一致的。
POSIX是可移植操作系统接口(Portable Operating System Interface of UNIX),POSIX标准定义了操作系统应该为应用程序提供的接口标准,只要符合这个标准的函数,在不同系统下执行的结果就应该一致。Unix和Linux很多库函数都是支持POSIX的,但windows支持的比较差。即如果将unix代码移植到linux一般代价很小,但把windows代码移植到unix或者linux就比较麻烦。
C语言编译过程
–E代表预编译 -o指定文件名 -c编译
gcc -o a11.c -E a1.c 预编译a1.c,预编译之后文件名叫a11.c
预编译功能之一:将#include包含的头文件做简单的文本替换
预编译功能之二:将代码中的注释删除
gcc -o a.o -c a11.c 编译a11.c,编译后的文件名叫a.o
gcc -o a a.o 链接a.o,最后生成的文件叫a(无单独的链接参数)
gcc是按照文件扩展名来识别文件类型的操作系统分用户模式和内核模式,我们写的程序一般是在用户模式下运行,设备驱动等软件是在内核模式下运行。
CPU对外是通过总线来和外部设备交互的,总线的宽度是8位,同时CPU的寄存器也是8位,那么这个CPU就叫8位CPU。有一种CPU内部的寄存器是32位的,但总线是16位,这种CPU叫准32位CPU。在64位的CPU构架上运行了64位的软件操作系统,那么这个系统就是64位。
- RISC精简指令集
CISC复杂指令集
SPARC,ARM都属于精简指令集,X86典型复杂指令集 - 汇编语言不具有移植性
- Qt移植性好,跨平台
MFC只能在windows上运行 - 关于路由器
学习笔记#01
最新推荐文章于 2022-02-25 23:47:59 发布