Unix/linux C(uc)与标准C语言最大的区别在于,标准C只是一种编程语言,而在此基础上还依赖于具体的操作系统,脱离了unix/linux系统的uc在其他地方可能不被识别。
(1)Unix/Linux系统的基本概述
用gcc将源文件翻译为可执行文件过程:
预处理:主要宏替换,头文件替换。
宏替换:#define用一个自定义的量代替一个数,如果要修改这个量的值,只要在最初的定义处修改即可。同时也定义了一些预定义宏:
__FILE__ -主要用于获取当前文件名%s
__LINE__ -主要用于获取当前宏所在的行号 %d
__DATE__ -主要用于获取日期信息 %s
__TIME__ -主要用于获取时间信息 %s
头文件替换:#include “a.h”表示先从当前程序所在目录开始寻找,然后去系统默认目录,#include <a.h>表示表示从系统默认所在目录开始寻找。
预处理指令:全部都以#开头
#pragma GCC dependency 文件名
=>表示当前文件依赖于指定的文件名,如果指定文件名的最后一次修改时间晚于当前文件,则产生警告信息
#pragma pack(整数n)超过4按4计算
=>主要用于设置对齐和补齐方式
#warining 字符串
=> 表示产生一个警告信息
#error 字符串
=> 表示产生一个错误信息
编译:检查语法的错误,同时将源文件翻译为汇编文件