看到几个gun c的小技巧,实践一下:
/*
Author :EricJiang
File :hello.h
*/
#define pf_debug(_argv,arg...) \
printf(_argv,##arg);
//这是定义一个可变参数的宏
/*
Author :EricJiang
File :hello.c
*/
#include<stdio.h>
#include"hello.h"
int main(int argc, char *argv[])
{
int flag=12;
int i;
pf_debug("success!\n");//print string
pf_debug("%d,%d,%d,%d,%s\n",flag,flag,flag,flag,__FUNCTION__);//print many & function
pf_debug("input %d arg \n",argc);
for( i=0;i<argc;i++)
{
pf_debug("arg[%d]:%s\n",i,argv[i]);
}
}
测试结果:
[root@localhost hello]# make
gcc -c -o hello.o hello.c
gcc hello.o -LS -o hello
[root@localhost hello]# ./hello
success!
12,12,12,12,main
input 1 arg
arg[0]:./hello
[root@localhost hello]# ./hello 12
success!
12,12,12,12,main
input 2 arg
arg[0]:./hello
arg[1]:12
[root@localhost hello]# ./hello 12 34
success!
12,12,12,12,main
input 3 arg
arg[0]:./hello
arg[1]:12
arg[2]:34
[root@localhost hello]#