c = 21
#include <stdio.h> #include "A.h" int main() { /************************************************************* * 预处理指令: * 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释 * (比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理), * 之后再进行通常的编译 * 2.为了区分预处理指令和一般的C语句,所有预处理指令都以符号"#"开头,并且结尾不用分号 * 3.预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾。习惯上 * 我们尽可能将预处理指令写在源程序开头,这种情况下,它的作用范围就是整个源程序文件 * 4.C语言提供的预处理指令主要有:宏定义、文件包含、条件编译 * * 文件包含:在编译代码之前,把文件包含命令用被包含文件的内容进行替换。 * 格式(#include <...>/#include "..."): * 1、<>表示包含系统自带的文件,""表示自定义的文件 * 2、不允许循环包含,比如a.h包含b.h,b.h又包含a.h * 通常情况下,程序开发是由多个人进行开发,当自己开发的代码需要用到别人的函数时, * 需要在自己编写的代码前引用别人代码的头文件,头文件中包含对代码中各种方法和其 * 他内容的声明,但是由于某些原因我们会不知不觉的多次引用了同一个头文件,虽然这 * 样并不影响程序的编译和运行,但是对于编译器还是需要消耗资源。所以我们就在 * 头文件开头使用下面格式来防止对同一个头文件的多次引用: * #ifndef * #define 头文件名_H(这种格式是为了防止同一个宏被重复定义,影响文件的包含) * 各种内容的声 * #endif *************************************************************/ int a = 10; int b = 11; int c = sum(a, b); printf("c = %d\n", c); return 0; }
int sum(int a, int b) { return a + b; }
#ifndef A_H #define A_H int sum(int a, int b); #endif