C语言中实现简单的功能用有参宏比用函数有什么好处?

来源:百度知道 编辑:UC知道 时间:2024/06/22 05:04:12

1、宏与函数的区别主要在于是否返回值,一般函数都有返回值,宏是不可以的。宏和函数都不必须要求参数,参数都是可有可无的。
2、用函数,因为要有函数调用,增加了执行时的开销,效率不如宏,但是可代码重用。用宏虽然没有函数调用,但是因为在使用这个宏的地方,代码会被展开编译,增加了程序文件的大小。总起来说,参数和宏是一个用空间换时间还是用时间换空间的抉择。

用函数,因为要有函数调用,增加了执行时的开销,效率不如宏,但是可代码重用。用宏虽然没有函数调用,但是因为在使用这个宏的地方,代码会被展开编译,增加了程序文件的大小。总起来说,参数和宏是一个用空间换时间还是用时间换空间的抉择。

效率上宏和内联函数一样.
对于很短的函数,宏书写要简单一点(不需要写函数声明,通常声明和实现在不同地方)

个人认为,对于长一点的功能宏没有什么优势,并且很难调试,你试想一下错误在宏定义内部就知道了.

借一下地方
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
struct student
{
char name[16];
char tel[18];
char sexual[7];
char age[3];
char birthday[15];
char dorm[20];
struct student *next;
};
struct student *head;
int n=0; /*记录结点个数,也就是记录的人数*/
FILE *fp;

void savetofile(struct student *head,FILE *fp); /*把记录存到文件中*/
int load(FILE *fp); /*形参为指向文件的指针,从文件中加载,返回结