黑马程序员—(iOS开发)C语言简单编程---(二)

时间:2022-12-17 00:25:10

  ------- android培训iOS培训云计算培训Java培训、期待与您交流! ----------

了解:
1、iOS开发,使用Mac平台下的Xcode搭建C语言开发环境;
2、Windows环境下,下载微软的Visual C++搭建C语言开发环境;
 
(一) 创建C程序(Mac平台)
       1、打开Xcode,新建Xcode项目;
       2、选择简单的命令行项目(OS X ==>Application、选中命令行项目);
       3、输入项目信息(项目名:中文、英文均可,Type==> C);
       4、选择一个用来存放C程序代码的文件夹;
       5、运行程序(左上角运行按钮 或 command + R组合键运行);
(二) 程序代码分析:
       1、打开项目中的main.c文件:(C 程序的源文件为.c文件)
              1> #include <stdio.h>
                     ① #include 是C语言预处理指令之一,所谓预处理:就是在编译之前做的处理,预处理指令一般以#开头;
                     ② #include 后面会跟一个文件名,预处理器发现#include 指令后,就会根据文件名去查找文件,并把这个文件的内容包含到当前文件中,被包含文件中的文本将替换源文件中的#include 指令,就像你把被包含文件中的全部内容拷贝到这个#include 指令所在位置一样;
                     ③ #include 指令不仅仅限于.h头文件,它还可包含任何编译器能识别的C/C++代码文件,包括.C、.hpp、.cpp等,甚至.txt、.abc等都可以;
                     注意:若头文件为系统自带文件,使用<>,若为自己创建文件,则用"";
              2>main函数:
                     ① C中的函数即是面向对象中的方法;
                     ② C语言是一门面向过程的语言,是以过程为中心的编程思想,就是先分析出解决问题所需的步骤,然后用函数一步步实现,使用时一个个一次调用函数就可以了;
                     ③ 一个C程序中一定会有且只有一个main函数,main函数是整个C程序的入口;
                     ④ main函数的返回值为int类型,接收2个参数,参数可省略不写;
                     注意:
                     ① main函数没有写返回值类型,并不代表函数没有返回值,而是表示返回值类型为int类型,只有void才表示无返回值;
                     ② 由于C语言的语法限制不严格,可简化main函数为:(下图所示),虽然它要求main函数返回int类型的值,但可不返回;

<pre name="code" class="objc">#include <stdio.h>

int main()
{
printf("Hello word");
}

 
       3>stdio.h 头文件:是C语言函数库中的一个头文件,里面指定了一些输入输出函数;
(三) 开发和运行程序的步骤
       1、编写程序:C语言原文件扩展名为".c",源文件以ASCII码形式存储,不能直接被计算机执行,因为计算机仅能识别0和1;
       2、编译:(VC环境下)(编译只会检查有没有语法错误,不会检测有没有main函数)
              1> 把C的源程序翻译成计算机可识别的二进制形式的目标代码文件,这个过程叫“编译”,由C的编译器完成;
              2> 在编译同时,还对源程序进行语法检查。若出现错误则编译失败,否则生成目标文件,且目标文件与源程序文件名一致,扩展名为".obj";
              3>每个源文件是单独编译的,若一个项目中有多个.c源文件,编译成功会生成多个对应的.obj目标。一般情况下,目标文件间是有关联的,如a.obj可能会调用b.obj中定义的函数,因此他们不能单独被计算机执行,且目标文件中并不包含程序运行所需的库函数等;
       3、链接:(VC环境下)(链接只会检查有没有错误)
              1> 将所有有关联的obj目标文件以及系统提供C库函数等组合在一起生成可执行文件的过程,称为“链接”;
              2>链接生成的可执行文件的文件名跟源程序文件同名,扩展名为“.exe”,计算机可直接执行;
       4、运行:
              1>若在Windows环境下,直接双击“.exe”文件即可运行C程序;
              2> 若在Mac OS X环境下,用Xcode创建的命令行项目运行,Mac OS X系统是基于UNIX系统的,因此生成的可执行文件;
(四) 总结:
       1、在编译器编译程序前先执行预处理指令#include指令,拷贝stdio.h的内容到源文件中;
       2、编译源程序(.c文件),生成目标文件;
              1> Mac环境下:生成.o目标文件;
              2> Windows环境下:生成.obj文件;
       3、链接C语言函数库,生成可执行文件;
              1> Mac环境下:生成.out目标文件;
              2> Windows环境下:生成.exe文件;
       4、运行可执行文件,在屏幕上输出内容;
       5、若使用终端运行C程序
              1> clang指令编译链接执行程序)
                     ① 编译:cc -c one.c
                     ② 链接:cc one.o
                     ③ 编译、链接:cc one.c
                     ④ 运行当前路径下的可执行文件:./a.out
                     ⑤ 更改可执行文件名称:cc two.c -o one
              2> 常见错误:linker链接
                     ① 语法错误:可通过编译器报错信息解决;
                     ② 逻辑错误:需耐心调试程序;
       6、多语言对比(输出“哈哈”并换行):
              C语言:
              #include <stdio.h>
              int main()
              {
                     print(“哈哈\n”);
                     return 0;
              }
              Object-C语言:
              #import <Foundation/Foundation.h>
              int main()
              {
                     NSLog(@“哈哈”);//自动换行
                     return 0;
          }
              Java语言:
                     class Test{
                                   public static void main(String [] args){
                                          System.out.println(“哈哈”);
                 }
              }
 
PS:本章节介绍了如何编写第一个C程序以及它的运行原理,接下来的章节中将探索C语言内部具体知识;