我正在尝试了解如何一致地处理宏函数中的vararg(即避免titles = ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
html_text = '''<html>
<head>
<style type="text/css">
table { border-collapse: collapse;}
td { text-align: center; border: 5px solid #ff0000; border-style: dashed; font-size: 30px; }
</style>
</head>
<body>
<table width="100%" height="100%" border="5px">
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
</table>
</body>
</html>''' % (titles[0], titles[1], titles[2], titles[3], titles[4])
f = open('temp.html', 'w')
f.write(html_text)
f.close()
吞下#include<stdio.h>
int main()
{
int test,i,number,num1;
char ch;
scanf("%d",&test);
for(i=test;i>0;i--)
{
scanf("%d",&number);
num1=number;
while(num1>12)
{
num1-=12;
}
if(num1>0 && num1<7)
printf("%d ",(2*(6-num1)+1)+number);
else
printf("%d ",number-(2*(num1-7)+1));
if(num1==(1 || 6 || 12 || 7 ))
{
puts("WS");
}
if(num1==(2|| 5 || 8 || 11))
{
puts("MS");
}
if(num1==(3 || 4 || 9 || 10))
{
puts("AS");
}
}
return 0;
}
的逗号)。我是这样写的:
gcc
但是它不会生成有效的程序测试。 ##__VA_ARGS__
扩展到
#define IS_DEFINED(ARG) strlen(#ARG)
#define FOO(a, ...) \
if(IS_DEFINED(__VA_ARGS__)){\
printf(#a, __VA_ARGS__)\
} else {\
printf(#a)\
}
无法编译。
有没有办法处理带有一个参数和vararg的vararg宏函数的情况?