【发布时间】:2015-03-20 13:20:32
【问题描述】:
我想了解如何在我的代码中有效地使用 C 宏。有人可以就下面提到的代码指导我吗?
#include<stdio.h>
#include<string.h>
void write_strongswan_conf(char buffer[1000],int buffer_size)
{
FILE *fp;
char delimiter[]="\n";
fp = fopen( "strongswan.txt" , "a" );
strcat(buffer,"\n");
fwrite(buffer, 1 ,buffer_size+1, fp );
printf("Data Written:%s",buffer);
fclose(fp);
}
int main ()
{
char wr_buffer[1000];
int wr_buffer_size =1;
strcpy(wr_buffer,"STRONG SWAN CONFIGURATION FILE");
wr_buffer_size = strlen(wr_buffer);
write_strongswan_conf(wr_buffer,wr_buffer_size);
strcpy(wr_buffer,"THIS IS THE SECOND LINE");
wr_buffer_size = strlen(wr_buffer);
write_strongswan_conf(wr_buffer,wr_buffer_size);
return(0);
}
这是一个将新字符串附加到文件末尾的小程序,我有大约 25 个字符串要添加到文件中。截至目前,我必须重复编写下面提到的三行来完成它。如果我的理解是正确的,我们将能够通过为这三行实现宏来减少 LOC。
有人可以指导我吗?
strcpy(wr_buffer,"STRONG SWAN CONFIGURATION FILE");
wr_buffer_size = strlen(wr_buffer);
write_strongswan_conf(wr_buffer,wr_buffer_size);
【问题讨论】:
-
或更简单的方法是将其放入具有正确参数的函数中。
-
你想写一个多行宏?只需用“\”结束宏的每一行
-
感谢您的响应。函数是一种方法,但我想了解宏的概念并使用它。我知道它会降低可读性,但我有兴趣了解宏。
-
但是三行之间,字符串会有所不同。本例为“STRONG SWAN CONFIGURATION FILE”
-
您必须将其作为字符串参数传递。
标签: c c-preprocessor