C语言序言

执行C文件

第一种:xcode环境下:

一.创建c工程

macOS -> Command Line Tool  语言选择C

二.代码编写

三.编译

1、什么是编译:将C源程序翻译成计算能识别的0和1

  2、使用什么编译器:Xcode3是用GCC,XCode4使用LLVM编译器(前端clang)

  3、如果使用clang编译程序?

    * 在终端中输入:CC -c 文件名.c。(cd进入当前目录下)

* 编译成功,会生成.o目标文件。

  4、编译器的错误和警告功能

    * 如果代码有语法问题,编译器会直接报错,并指出错误的个数和具体的行号。

    * 只要有1个错误,程序就不能编译成功,也不好生成.o文件。

    * 警告信息只是编译的一些建议,并不影响编译通过。

四、连接

  1、连接的作用:将.o文件和C语言函数库组合在一起,生成可执行文件

  2、由连接器完成,clang编译器里面已经包含了连接指令。

    * 终端输入:cc 文件.o。

    * 连接成功,会生成a.out可执行文件。

五、运行

1、两种方式运行

    * 直接双击打开a.out文件。

    * 终端中使用./a.out指令。

2、修改文件内容之后,一定要重新编译、连接、再运行。

  3、\n的作用:回车换行。


第二种使用.c文件:

1.创建.c文本文件 编写代码 (或者用xcode创建.c文件)

2.在终端输入命令行 gcc -o /Users/wanghuan/Desktop/helloworld.exe /Users/wanghuan/Desktop/helloworld.c 进行编译生成一个exe的文件

或者 gcc   /Users/wanghuan/Desktop/helloworld.c   -o   /Users/wanghuan/Desktop/helloworld.exe

3.执行exe文件



C语言仅有32个关键字,9种控制语句,和34种运算符:

32个关键字(由系统定义,不能重作其他定义)

auto        break      case   char      const   

continue  default   do      double   else   

enum        extern   float   for          goto

if               int          long   register  return

short        signed    sizeof    static     struct

switch   typedef   unsigned   union   void

volatile  while

9种控制语句:

if-else

for

while

do-while

continue

break

switch

goto

return

C语言编译步骤

1.预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法。

2.编译:检查语法,将预处理后文件编译生成汇编文件

3.汇编:将汇编文件生成目标文件(二进制文件 机器语言)

4.链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去

GCC编译过程

1.分布式编译

预处理:gcc  -E   文件名.c   -o   文件名.i              -E:只进行预处理

编译    :gcc  -S   文件名.i   -o   文件名.s             -S:只进行预处理和编译

汇编文件:gcc  -c   文件名.s   -o   文件名.o        -c:只能进行预处理、编译和汇编

链接:gcc   文件名.o    -o     文件名.exe                生成可执行文件


2.寄存器名字(了解  用于汇编语言的开发) 

8位             16位             32位              64位

A                   AX              EAX                RAX

B                   BX              EBX                RBX

C                   CX             ECX                 RCX

D                   DX              EDX                RDX

你可能感兴趣的:(C语言序言)