C语言笔记2

#include预编译命令

#include <>  是系统目录中找头文件。(优先系统目录)

#include " "  是首先在当前目录查找头文件,如果找不到,再去系统目录查找。(优先当前目录)

文件包含可以嵌套。一个头文件里可以#include多个其他头文件。


函数的跨文件使用


函数定义

写在main函数之后的函数,要在main函数之前声明才能正常使用

void add(int a, int b); //函数声明
int main()
{
    void add();   
}

void add(int a, int b) 
{
    return a + b;
}

内部函数(静态函数)、static关键字

内部函数只能被本文件中其他函数调用。

1、函数内部定义一个变量时,则改变量会保存在静态储存区,整个程序运行期间不释放内存,在编译时被初始化为0,并且调用该函数时,该变量保持上次离开时的值。

#include 

int max(int p1, int p2)
{
	static int a;  //初始化为 a = 0
	++a;
	printf("%d\n", a);
	if (p1 > p2)
		return p1;
	return p2;
}

int main()
{
	int b = 3;
	int c = 4;
	max(4, 5);  // a = 1
	max(c, b);  // a = 2
}

2、在全局变量之前增加static,会导致变量变成局部静态变量,如果不赋初值,则在编译时被初始化为0,只能被本文件引用,无法在其他文件中引用。

static int k;
int main()
{
	printf("%d\n", k);  // k = 0
	k++;
	printf("%d\n", k);  // k = 1
}

3、在函数定义之前增加static,那么该函数只能在本文件中调用,而不能在其他文件中调用。

static int max(int p1, int p2)
{
	static int a;
	++a;
	printf("%d\n", a);
	if (p1 > p2)
		return p1;
	return p2;
}

外部函数、extern关键字

extern对外部的全局变量做出声明

函数定义时,不加static关键字,就相当于是外部函数,不写默认有extern



宏定义

不带参数的宏定义,用 PI 代替"3.14159265"这个字符串

#define PI 3.14159265  // #define  标识符/宏名  字符串

宏名 一般都用大写字母,且 宏定义不加分号


理解项目运行


C语言笔记2_第1张图片

 C语言笔记2_第2张图片

你可能感兴趣的:(c语言,学习,c++)