C语言基本编程规范

C程序对应的文件有两种

头文件( 必须以 .h 结尾 ):一般存放变量,函数的声明

源文件( 必须以 .c 结尾 ):一般存放变量,函数的定义

必须有 源文件(.c) 头文件可以不存在

C程序注释有两种

/*
    多行注释  不可嵌套
*/
//  单行注释  可以嵌套

包含头文件

/*
   包含头文件 stdio.h 为了使用printf函数
   include 前面必须加 #  它是一个预处理指令
   包含形式有两种:
       #include <stdio.h>  告诉gcc编译器,包含的头文件位于/usr/include 目录下
       #include "stdio.h"  告诉gcc编译器,先在当前目录下找要包含的头文件,找不到再到 
                           /usr/include 目录下寻找

   zhu@zhu-virtual-machine:~/stdc$ find /usr/include -name stdio.h
   /usr/include/stdio.h
   /usr/include/i386-linux-gnu/bits/stdio.h
   /usr/include/c++/5/tr1/stdio.h
   
   上述两种包含形式,都引用的第一个头文件,如果要使用第二个,可以如下写
    #include "i386-linux-gnu/bits/stdio.h"
    #include "/usr/include/i386-linux-gnu/bits/stdio.h"

*/
#include <stdio.h>

int main(void)
{
    printf("hello world\n");
    return 0;
}

main函数

任何C程序必须只能包含唯一一个main函数;

CPU将从main函数开始,依次向下执行;

main函数又称为主函数;

前面必须加 int 关键字;

圆括号可以写 void 或者其他参数;

main函数里面的内容由程序员自己编写,需要花括号包裹;函数内部每一行都需要分号

main函数中的return 表示 main函数执行到这停止运行,此时程序就会结束;

return 0; 告诉操作系统执行成功

return 非0; 告诉操作系统执行出错

GCC

语法

gcc 选项 源文件

gcc 编译源文件的流程三步骤

  • 1、预处理:gcc将包含的头文件内容全盘拷贝到源文件中 对应选项 -E
    • 对应选项 -E -o 输出生成到新文件
    • 例如 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
    • 此时 计算机可以识别 helloworld.o 但是不包含头文件,即不包含 printf函数
  • 3、链接:
    • 就是将代码中用到的别的内容函数包含进来。例如 printf
    • 例如:gcc -o helloworld helloworld.o
    • 语义:最终将helloworld.o和各种函数代码printf包含在一起

gcc编译程序的三种方式

/*
a) 简单法
   gcc helloworld.c
b) 分布编译
   gcc -E -o helloworld.i helloworld.c
   gcc -c -o helloworld.o helloworld.i
   gcc -o helloworld helloworld.c
c) 一步到位
   gcc -o helloworld helloworld.c
*/

评论