12.2C语言听课笔记(补完)
预处理的概念
头文件(Header File)
主要的作用是保存程序的声明,包括:
功能型原函数,数据类型声明等
#include<stdio.h>
<系统给的头文件>
#include"......"
“用户自定义的头文件”
".c"源程序
“.h”头文件(程序声明,原型变量的声明)
宏定义(宏替换)
将一个标识符定义为一个字符串。
编译预处理时,源程序中的该标识符都用所指定的字符串来代替。
无参定义
甚至可以定义简单的命令,可以理解为某种快捷方式。
带参宏定义
取消宏定义
undef<标识符>
条件编译指令格式1:
#ifdef<标识符>//若该标识符已经被定义,执行程序段1,没定义执行程序段2
<程序1>
[#else
<程序2>]
#endif
#ifndef<标识符>//该标识符已经被定义执行程序段2,没定义执行程序段1
<程序1>
[#else
<程序2>]
#endif
多文件工程程序
多文件的目的是加强团队写程序的分工与协作。
遵循低耦合,高内聚原则。
调用.h
下的头文件,头文件指向的是包含着对应功能的.c
源文件。
举例:计算园的周长和面积
//circle.h头文件,用于声明该文件可以调用的函数,作用可以对标目录
#ifndef CIRCLE//此处运用了条件声明,如果CIRCLE没有被定义,执行以下程序
#define CIRCLE//而在条件声明下的程序便是定义CIRCLE,这样就避免了CIRCLE被重复定义,
double circle_area(double r);
double circle_perimeter(double r);
#endif
//circle.c源文件,用于实现头文件内函数的功能。
#include<stdio.h>
double const pi = 3.14159;
double circle_area(double r)
{
return pi * r * r;
}
double circle_perimeter(double r)
{
return 2 * pi * r;
}
//此时你就可以在main函数中调用自己的定义的头文件
//用户自定义的头文件用引号声明。
#include<stdio.h>
#include"circle.h"
int main()
{
double r;
printf("input r:");
scanf_s("%lf", &r);
printf("circlrarea=%5.2lf", circle_area(r));
printf("circleperimeter=%5.2lf", circle_perimeter(r));
return 0;
}