day 2

1.请简述GCC的分步编译过程。

GCC的分布编译过程一共分为四步,分别是预处理、编译、汇编和链接。

预处理过程

预处理过程的步骤为首先展开头文件,其次删除注释,最后替换宏定义。

其格式为:gcc  -E   文件名(.c结尾) -o  文件名(.i结尾)

假设存在一个hello.c文件

eg:

       预处理过程代码:gcc  -E hello.c  -o  hello.i

编译过程

编译过程的作用是检查程序语法的正确性。

其格式为:gcc  -S   文件名(.i结尾) -o  文件名(.s结尾)

eg:   

         编译过程代码:gcc  -S  hello.i  -o  hello.s

汇编过程

汇编过程是把汇编文件转化为二进制文件。

其格式为:gcc  -c   文件名(.s结尾) -o  文件名(.o结尾)

eg:   

         编译过程代码:gcc  -c  hello.s  -o  hello.o

链接过程

链接过程是把二进制文件转换为链接文件。

其格式为:gcc   文件名(.o结尾) -o  自定义可执行文件名

eg:   

         编译过程代码:gcc  hello.o  -o  two

过程如图所示:

day 2_第1张图片

2.请计算3-1的运算过程。

注:当计算结果超过8位时,把最高位去掉,正数的原、反、补码一致

3  原码:0000 0011      反码:0000 0011      补码:0000 0011

-1 原码:1000 0001      反码:1111 1110      补码:1111 1111

   0000 0011

+ 1111  1111

——————

  0000  0010      ------补码

  0000  0010      ------反码

  0000  0010      ------原码

==>0000 0010 换成十进制:2

所以3-1=2

  

你可能感兴趣的:(linux)