1、C语言相关基础知识

本文介绍了C语言作为人与计算机交流的工具,以及其与其他编程语言的关系。详细讲述了C语言的发展历程,包括由丹尼斯里奇发明及C89、C99标准的发布。通过实例展示了如何编写并运行第一个标准C程序"Hello, World",解释了C程序的基本规范,如源文件、头文件、注释、main函数和printf函数的使用。同时,讨论了C程序编译器gcc的工作原理和编译流程,并提供了不同编译方式的示例。
摘要由CSDN通过智能技术生成

1.C语言功能:类似英语一样,英语是人和人交流沟通的方式,工具
         C语言就是人和计算机交流沟通的方式,工具
                      除了C语言,还有C++,JAVA,Python,Go,Rust语言等
2.C语言背景:
   1972年由丹尼斯里奇发明C语言
   1978年发布<<the c programming language>>出版,走向世界
   1989年发布C89标准
   1999年发布C99标准
3.编写人生第一个标准C程序
   具体实施步骤如下:
   mkdir -p /home/tarena/stdc/
   cd /home/tarena/stdc/
   vim  helloworld.c  添加如下内容
   /*
      这是我的第一个C程序
      纪念C语言之父
   */
   #include  <stdio.h>

   int main(void)
   {
    printf("hello,world\n");
    return 0;
   }
   保存退出
   
   继续执行以下命令:
   gcc  helloworld.c  //编译程序
   ls -lh
   ./a.out //运行程序
   
4.总结:C程序基本编程规范
a)C程序对应的文件有两种:
    源码文件(简称源文件):必须以.c结尾
    头文件:必须以.h结尾
    必须有一个源文件存在,头文件可以不要
b)C程序注释(不参与程序编译运行,仅仅就是文件的功能说明)有两种:
    /*注释的内容*/:
               优点:多行注释
               缺点:不能嵌套:/* /* */ */,报错
    //注释的内容:
               优点:可以嵌套: ///
               缺点:不能多行注释
c)任何C程序必须包含头文件:stdio.h(为了使用printf函数)
   包含头文件的形式有两种(include前面必须加#,它是一个预处理指令):
   1.#include  <头文件名.h>:告诉gcc编译器,将来包含的头文件位于/usr/include目录下
                   请到这个目录下找要包含的头文件
   2.#include "头文件名.h":告诉gcc编译器,现在当前目录下找要包含的头文件,找不到再到
                    /usr/include/目录下找
   注意:include后面不能加分号";"
d)任何C程序必须只能包含唯一一个main函数
    一个C程序不允许有多个main函数,并且将来CPU一定要从main函数开始
   依次向下开始运行,main函数又称主函数
   C程序对main函数有要求:main函数前面必须加int关键字,并且main函数后面
   跟一对圆括号,圆括号里面的内容可以写void,也可以写其他好东西(后续讲解)
   并且main函数里面的内容由程序员自己编写,所以最后还要跟一对花括号{}
e)main函数中,也就是花括号中每条语句后面必须跟分号;
   main函数中的return表示让main函数执行到这停止运行,此时程序就会结束
   并且return后面跟0,告诉操作系统此程序执行还算正常,如果想告诉操作系统
   此程序执行有问题,后面跟非0

5.人生认识的第一个有名的函数:printf(大神写好的,咱直接用)
   printf函数功能:向显示器上输出一段信息
   printf函数格式:printf("要输出的信息");
   例如:printf("我将来必然成为一名大神.\n");           
   注意:printf函数一般要在输出的信息后面加'\n',表示换行
   占位符:%d
                 printf("1+1 = %d\n", 2);
       printf("%d   %d\n", 2, 3);

6.大名鼎鼎的C程序编译器:gcc(GNU软件之父编写的)
6.1.gcc功能:它也是一个程序,它的名字叫C程序的编译器
         它类似一个翻译官,将C程序的源文件翻译成计算机能够识别的,能够看懂的文件
         例如:gcc helloworld.c 生成一个a.out可执行的文件,a.out计算机能够识别
                   helloworld.c计算机不认识!

6.2.gcc命令语法格式:gcc   选项  源文件
      两个重要选项:
      -o:输出,后面要跟一个输出生成的新文件
      -E:预处理选项
      -c:只编译不链接,仅仅将自己的源文件翻译成计算机能够识别的可执行程序
          但是此时不会包含大神的printf函数内容

6.3.gcc编译源文件的流程三步骤(翻译官要做三件事):
      1.预处理:gcc将包含的头文件内容全盘拷贝到源文件中
                   对应的选项:-E
          例如:gcc  -E helloworld.c -o helloworld.i 
          语义:gcc翻译官对helloworld.c源文件进行预处理,将stdio.h文件里所有的
                    内容拷贝到helloworld.c中,并且生成一个新文件helloworld.i
      2.编译:只编译不链接
      对应的选项:-c
                   例如:gcc -c -o helloworld.o  helloworld.i
                gcc -c -o helloworld.o  helloworld.c
      语义:gcc翻译官仅仅将预处理器以后的文件或者源文件编译翻译成
                 计算机能够识别的可执行文件helloworld.o
                 此时helloworld.o中没有大神的printf函数的内容
      3.链接:就是将代码中用到别的内容函数包含进来,例如printf
      例如:gcc -o helloworld  helloworld.o
                   语义:最终将helloworld.o和大神写的各种函数代码printf包含在一起

6.4.结论:gcc编译程序的三种方式
a)流氓法:gcc  helloworld.c
    默认生成a.out
    ./a.out
b)分步编译:
   gcc -E -o helloworld.i  helloworld.c
   vim helloworld.i  //查看文件的内容,关键之前的注释是否还存在?    
   gcc -c -o helloworld.o helloworld.i
   gcc -o helloworld helloworld.o  
   指定生成helloworld
   ./helloworld
c)一步到位:
   gcc -o helloworld helloworld.c 
   ./helloworld

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暗里い着迷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值