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
// 声明语句