记录一下宏函数怎么写,以后忘了可以回来看看自己写的代码。
本次写的宏函数是打印错误信息代码并且退出。环境是ubuntu16.04.编译器是gcc g++是5.4版本。
上代码:
1 #include <stdio.h>
2 #include <unistd.h>
3 #include <sys/types.h>
4 #include <sys/stat.h>
5 #include <fcntl.h>
6 #include <stdlib.h>
7 #include <errno.h>
8 #include <string.h>
9
10 #define ERR_EXIT(m) \
11 do \
12 { \
13 perror(m); \
14 exit(EXIT_FAILURE); \
15 }while(0)
16
17 int main()
18 {
19 int fd = open("test.txt",O_RDONLY);
20 if(fd == -1)
21 {
22 ERR_EXIT("open error");
23 }
24 return 0;
25 }
这就是简单的宏函数:
宏函数:
#define ERR_EXIT(m) \
do \
{ \
perror(m); \
exit(EXIT_FAILURE); \
}while(0)
反斜杠后面是不可以后空格的最后一行不需要反斜杠。m是变量。用来传值的。
比如:
ERR_EXIT("open error");
实测代码是好使的。
在多文件下使用宏函数。
上代码:
main文件:
#include <stdio.h>
#include "add.h"
int main()
{
PRENTF(10);
return 0;
}
add.c文件:
#include "add.h"
void add()
{
return;
}
add.h文件:
#ifndef __ADD_H__
#define __ADD_H__
void add();
#define PRENTF(m) \
do \
{ \
printf("%d\n",m); \
\
} while (0)
#endif
当然宏函数在add.c文件下也是可以使用的:
#include "add.h"
#define PRENTF(m) \
do \
{ \
printf("%d\n",m); \
\
} while (0)
void add()
{
return;
}