c程序文件

C程序是由一个或者多个.c文件和.h文件组成
    .c文件:c源代码文件
    .h文件:c的头文件

1. .c文件组成
    (1)预处理命令:以‘#’开头的行
        a. #include 文件包含命令
                #include <stdio.h>
                #include "xxx.h"

            上面两个都是文件包含命令,其作用是找到对应的文件,然后把该文件
            的内容在此处展开。
            <> 和 "" 的区别在于:搜索该文件的方式不同
                <>在库函数指定的路径去搜索(/include , /usr/include...)
                ""先在工程目录下搜索,找不到再到指定的路径去搜索,还是找不到的话,
                    再到库函数指定路径去搜索。

            gcc main.c -o 1 -I/your/include/path

        b.宏定义
            #define PI 3.14 // 不带参数的宏
            #define MAX(a,b) a>b?a:b // 带参数的宏
            注意:宏的作用仅仅是形式替换而已!!!
            m = MAX(3+5,6+8)
            ==> 3+5>6+8?3+5:6+8
            ==> 14

            #define DEBUG // 仅定义了一个符号 DEBUG
        c.条件编译
            #ifdef DEBUG
            ...
            #endif

            #ifndef DEBUG
            ...
            #endif

            #if 0
            ...
            #endif

    (2)全局声明
        在C语言中任何东西必须要知根知底,拒绝一切来路不明。
        "声明":C语言中声明就是把一个名字(C标识符)的属性进行说明。
        比如该标识符是变量呢还是函数,如果是变量又是什么类型呢。
        一般在定义变量(函数)时,就规定变量(函数)的属性,所以定义也属于声明。

        C程序的编译顺序时从上至下,所以我们在调用某变量或函数时,必须要先声明(定义),
        让系统知道它的属性后,再调用。
            变量的声明(定义变量,声明外部变量)
            函数的声明(定义函数、声明函数)
            类型的声明(定义类型) // 构造类型

    (3)函数 function 功能
        C语言的函数就是一个功能模块,是指令序列的集合。
        一个程序可以有多个函数,但必须有且仅有一个main函数,main函数是由
        执行这个程序的操作系统调用的。程序的执行是由main函数开始,也由
        main函数结束,即main返回了你的程序结束了。

2. .h文件的组成
    .h文件也叫头文件,其作用是用来进行一些声明,比如导入一个函数接口或者全局变量
    的声明。
        函数的声明:
            printf/scanf
            putchar/getchar
            这些函数就是声明在 stdio.h 这个头文件中
        类型的声明:构造数据类型
        全局变量的声明

    头文件的写法举例:
    #ifndef __JITOU_H__ //防止头文件重复包含(自己包含自己)
    #define __JITOU_H__

    extern int a; // 声明外部全局变量(其他文件中定义的全局变量)

    extern void func(void); // 声明外部函数(extern可省略)

    struct test { // 声明了一个结构体数据类型
        int a;
        char b;
    };

    #define PI 3.1415926

    int a = 4; // warning 应避免在头文件中定义变量,可能会出现重复定义

    #endif

    编程规则:在头文件里的内容应该是一些不会生成指令或者分配空间的代码,
        即就只有声明。如果多包含了一些头文件也应该不会造成任何影响。

    #include <stdlib.h>
    #include <time.h>

    srand( time(NULL) ); // 用当前时间作为随机数种子来生成随机数
    return rand()%10; rand返回一个随机的正整数,范围 0~9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值