main函数与exit函数
在main函数中调用exit和return结果是一样的,但在子函数中调用return只是代表子函数终止了,在子函数中调用exit,那么程序终止。
#include <stdio.h>#include <stdlib.h>void fun(){printf("fun\n");// return;exit(0);}int main(){fun();while (1);return 0;}
多文件编程
单文件编程
// 单文件#define _CRT_SECURE_NO_WARNINGS# include <stdio.h>int add(int a, int b);int sub(int a, int b);int mul(int a, int b);int main(void){int a = 5;int b = 35;printf("%d + %d = %d\n", a, b, add(a, b));printf("%d - %d = %d\n", a, b, sub(a, b));printf("%d x %d = %d\n", a, b, mul(a, b));return 0;}int add(int a, int b){return a + b;}int sub(int a, int b){return a - b;}int mul(int a, int b){return a * b;}
分文件编程
- 把函数声明放在头文件xxx.h中,在主函数中包含相应头文件
- 在头文件对应的xxx.c中实现xxx.h声明的函数

// main.c# define _CRT_SECURE_NO_WARNINGS# include "head.h"int main(void){int a = 5;int b = 35;printf("%d + %d = %d\n", a, b, add(a, b));printf("%d - %d = %d\n", a, b, sub(a, b));printf("%d x %d = %d\n", a, b, mul(a, b));printf("%d / %d = %d\n", a, b, mod(a, b));return 0;}
// head.h#ifndef __HEAD_H__#define __HEAD_H__// include 头文件#include <stdio.h>#include <string.h>#include <stdlib.h>#include <math.h>#include <time.h>// 函数声明int add(int a, int b);int sub(int a, int b);int mul(int a, int b);int mod(int a, int b);// 类型定义// 宏定义#define N 10#define PI 3.14#endif
// 这些函数可放到多个.c文件int add(int a, int b){return a + b;}int sub(int a, int b){return a - b;}int mul(int a, int b){return a * b;}int mod(int a, int b){return a / b;}
防止头文件重复包含
当一个项目比较大时,往往都是分文件,这时候有可能不小心把同一个头文件 include 多次,或者头文件嵌套包含。
为了避免同一个文件被include多次,C/C++中有两种方式,一种是 #ifndef 方式,一种是 #pragma once 方式。
方法一:
#ifndef __SOMEFILE_H__#define __SOMEFILE_H__// 声明语句#endif
方法二:
#pragma once// 声明语句
