C语言函数

函数

函数的使用可以使程序更加模块化,便于组织,而且可重复利用

recusion

The process in which a function calls itself directly or indirectly is called recursion

Function Definition

1
2
3
4
return_type function_name (parameters) 
{
//body of the function
}

Function Declarations

1
2
3
return_type name_of_the_function (parameters); 
return_type name_of_the_function (int[],int);
int mystery(const int b[], int p) ; /* function prototype */

Define & Typedef

define

两种定义方式

  • #define <宏名/标识符> <字符串>
  • #define <宏名>(<参数表>) <字符串>

实例

1
2
3
4
#define PI 3.1415926
#define S(a,b) a*b
#define MAX(a,b) ((a)>(b)?(a):(b))//一定注意括号

说明

  • 宏名一般用大写
  • 宏定义末尾不加分号
  • 可以用#undef命令终止宏定义的作用域
  • 宏定义可以嵌套
  • 字符串“ ”中永远不包含宏
  • 宏替换在编译前进行,不分配内存,变量定义分配内存,函数调用在编译后程序运行时进行,并且分配内存
  • 预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查
  • 使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义

冷门偏门

1
2
3
4
5
6
7
8
#define Conn(x,y) x##y//##的意思是连接
int n = Conn(123,456); //结果就是n=123456;

#define ToChar(x) #@x//其实就是给x加上单引号,结果返回是一个constchar。
char a = ToChar(1);//结果就是a='1';

#define ToString(x) #x //#x是给x加双引号
char* str = ToString(123132);//就成了str="123132";

typedef

C 语言提供了 typedef 关键字,您可以使用它来为类型取一个新的名字。下面的实例为单字节数字定义了一个术语 BYTE

1
typedef unsigned char BYTE;

在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写,例如:

1
BYTE  b1, b2;

也可以对结构体使用(注意是最后)

1
2
typedef struct Books {   char  title[50];   char  author[50];   char  subject[100];   int   book_id; } Book;
Book b;

C语言函数
http://mavericreate.top/Blogs/2025/08/28/C语言函数/
作者
唐浩天
发布于
2025年8月28日
许可协议