> 文章列表 > C语言笔记2

C语言笔记2

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 <stdio.h>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 = 1max(c, b);  // a = 2
}

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

static int k;
int main()
{printf("%d\\n", k);  // k = 0k++;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  标识符/宏名  字符串

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


理解项目运行