我正在用C编写一个程序,它应该根据符号常量的定义与否而采取不同的行动。举个简单的例子,我的第一个想法是这样写:
#include <stdio.h>
#define TEST
int main(void) {
int num;
#ifdef TEST
num=1;
printf("YES\n");
#else
num=0;
printf("NO\n");
#endif
printf("%d\n", num);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,在尝试自动缩进我的代码(特别是gg=G在 vim 中使用)时,我的缩进丢失了:
#include <stdio.h>
#define TEST
int main(void) {
int num;
#ifdef TEST
num=1;
printf("YES\n");
#else
num=0;
printf("NO\n");
#endif
printf("%d\n", num);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当然,如果我尝试自动缩进如下内容(中间有实际命令),就会出现混乱:
#ifdef TEST1
commands
#ifdef TEST2
commands
#else
#ifdef TEST3
commands
#endif
commands
#endif
#endif
Run Code Online (Sandbox Code Playgroud)
那么,我可以做些什么来将上述缩进视为默认值?
在我的代码中的某个时刻,我想读一个我将要创建(和/或编辑)的文件的名称,并且我想出了以下内容:
FILE *fp;
char filename[15];
fgets(filename, 15, stdin);
fp = fopen(filename, "a");
fprintf(fp, "some stuff goes here");
fclose(fp);
Run Code Online (Sandbox Code Playgroud)
即使它确实编译并运行,它也不会创建(或打开,如果我手动创建它)指定的文件filename.
你会建议什么?